源码

Android-View的绘制源码学习总结

ぐ巨炮叔叔 提交于 2020-03-17 03:02:22
##前言 算是第一篇正式的github博文,回顾了一下之前看过的view源码解析,做一个对目前为止View学习小的总结。 我觉得对于源码的解析和学习,把所有流程记下来意义并不是很大,最关键的是: 1.知道基本作用和用法 2.大概了解整个流程和实现方法 3.了解里面可扩展的地方在哪,更灵活地使用 4.整个源码设计和细节有没有什么亮点值得参考和学习 5.源码设计的思路 这也是写这篇文章的目的所在。 ##加载布局 ####LayoutInflater http://www.cnblogs.com/qlky/p/5674975.html - **作用** LayoutInflater是用来加载布局的,我们最简单的代码: ``` protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.mainlayout); } ``` 中的setContentView就是用LayoutInflater实现的 - **用法** 可以用来动态加载布局 ``` LayoutInflater layoutInflater = LayoutInflater.from(this); View buttonlayout = layoutInflater

Ajax+PHP分页演示,完整源码

时间秒杀一切 提交于 2020-03-17 01:53:04
网上有类似的,不过有个错误,我改正了,原来在IE下刷新会提示reobj未定义。 test.php文件 如下 <?php header("Content-type: text/html;charset=GBK");//输出编码,避免中文乱码 ?> <html> <head> <title>ajax分页演示</title> <script language="javascript" src="ajaxpg.js"></script> </head> <body> <div id="result"> <?php $page=isset($_GET['page'])?intval($_GET['page']):1; //这句就是获取page=18中的page的值,假如不存在page,那么页数就是1。 $num=10; //每页显示10条数据 $db=mysql_connect("localhost","root",""); //创建数据库连接 mysql_select_db("zhandian"); //选择要操作的数据库 /* 首先咱们要获取数据库中到底有多少数据,才能判断具体要分多少页,具体的公式就是 总数据库除以每页显示的条数,有余进一。 也就是说10/3=3.3333=4 有余数就要进一。 */ $result=mysql_query("select * from corange

Linux安装RPM包或源码包

与世无争的帅哥 提交于 2020-03-17 01:51:39
Linux安装RPM包或源码包 一、RPM工具 RPM是Red Hat Package Manager的缩写,由Red Hat公司开发。它是以一种数据库记录的方式将我们所需要的套件安装到Linux主机的一套管理程序。也就是说,你的Linux系统中存在着一个关于RPM的数据库,它记录了安装的包以及包与包之间的依赖关系。 把光驱挂载到/mnt目录下,要先检查一个VMware右下角的小光驱图标是否点亮,如果没有,点击一下,再点击“连接”就可以点亮它了。当挂载光驱后,会在/mnt/Packages目录下看到很多后缀为.rpm的文件,这些文件就是RPM包。 1、安装 RPM 包 命令格式: rpm - ivh filename -i:表示安装; -v:表示可视化; -h:表示显示安装进度; –force:表示强制安装,即使覆盖属于其他包的文件也要安装; –nodeps:表示当要安装的RPM包依赖于其他包时,即使其他包没有安装,也要安装这个包。 2、升级 RPM 包 升级RPM包的命令为 rpm - Uvh filename 其中 -U 选项表示升级 3、卸载 RPM 包 卸载RPM包的命令为 rpm -e filename。卸载时,-e选项后面的filename和安装时是有区别的。安装时,是把一个存在的文件作为参数,而卸载时只需要包名即可。 4、 查询一个包是否已安装 查询一个包的命令为

源码安装nginx到指定目录

感情迁移 提交于 2020-03-17 01:24:34
首先是全部步骤概括 yum install libaio ncurses gcc gcc-c++ cmake ncurses-devel wget yum install pcre-devel zlib-devel wget http://nginx.org/download/nginx-1.16.1.tar.gz # 下载源码包 tar -zxvf nginx-1.16.1.tar.gz cd nginx-1.16.1 ./configure --prefix=/opt/nginx1.16 # 这里指定安装目录 make && make install useradd www -s /bin/false vi /opt/nginx1.16/conf/nginx.conf # 修改配置文件 # 第一行去掉前面井号并改为 user www; /opt/nginx1.16/sbin/nginx #启动nginx #以下为可选 /opt/nginx1.16/sbin/nginx -s stop #停止 /opt/nginx1.16/sbin/nginx -s reload #重新载入配置 1.安装编译器和依赖 yum install libaio ncurses gcc gcc-c++ cmake ncurses-devel wget yum install pcre-devel

为UGUI的Image提供图片翻转功能

僤鯓⒐⒋嵵緔 提交于 2020-03-17 00:31:48
使用了NGUI多年,最终还是转入UGUI门下,刚一上手就发现了一个小问题,没找到图片翻转功能。网上查阅一番,确实没有,那么只好自己造轮子了。 既然两个UI工具开发者相同,那么代码应该也类似,打开我心爱的Rider编辑器(至于为什么又用回Rider,因为它足够强),随便写个Image的变量定义,然后跳转到声明处,Image类源码就展现出来了,不用切源码项目看源码,真香! 先说一下翻转图片的做法原理,一个Image其实就是一个模型片,普通模式的Image就是由4个顶点2个三角形组成的(当然九宫格等模式会复杂喝多)。如果需要左右翻转,我们可以左右翻转所有顶点(翻过来显示背面),也可以左右翻转所有顶点的UV(仅限顶点对称的情况下,比如九宫格就不合适)。所以翻转顶点就是我们要做的事情,我们来看代码。 有源码就是好,很快就锁定了方法OnPopulateMesh(),长成这样还是个override,必定有妖异: /// <summary> /// Update the UI renderer mesh. /// </summary> protected override void OnPopulateMesh(VertexHelper toFill) { if (activeSprite == null) { base.OnPopulateMesh(toFill); return; }

浅析SparkRPC源码(spark2.11)

南楼画角 提交于 2020-03-16 21:25:16
某厂面试归来,发现自己落伍了!>>> Spark的RPC 一步一步走下去: RpcAddress RpcEndPointRef 当我们需要向一个具体的RpcEndpoint发送消息时,一般我们需要获取到该RpcEndpoint的引用,然后通过该应用发送消息。 部分方法: RpcEnv RpcEnv的部分方法: RpcEndpoint 正如他所说我们前去看他的生命周期: 那么RpcEndpoint表示一个个需要通信的个体都有哪些?如master,worker,driver Driver这里就不在做演示了,有兴趣的可以自行进入源码中查看。 在调用中,我们发现了一个RpcCallContext的特性,在receiveAndReply被作为参数。 所以关注了一下他: 整片博客中由许多方法,类并未列出,看时做一个参考即可。在自己的idea中查看源码。仅做一个引导。 瞎琢磨一阵,做个小总结: 打个比喻:若是将Spark类比为一个人的话,Spark RPC无疑就是它的血液部分。所以说Spark RPC可以说是Spark分布式集群的基础。 在整个RPC中: RpcEnv为RpcEndpoint提供处理消息的环境。RpcEnv负责RpcEndpoint整个生命周期的管理,包括:注册endpoint,endpoint之间消息的路由,以及停止endpoint。

jQuery2.x源码解析(缓存篇)

痞子三分冷 提交于 2020-03-16 20:11:17
jQuery2.x源码解析(构建篇) jQuery2.x源码解析(设计篇) jQuery2.x源码解析(回调篇) jQuery2.x源码解析(缓存篇) 缓存是jQuery中的又一核心设计,jQuery自身的很多东西都依赖于缓存,比如事件、一些中间变量、动画等。同时他还为用户提供接口了使用缓存的接口,方便用户在元素节点上保存自己的数据,并且帮助用户解决直接把数据保存到DOM元素是可能引起的内存泄漏、命名冲突等问题。 同时,html5提出了一种通过属性缓存元素数据的功能,就是 data-*属性 ,他可以以字符串的形式保存数据,并且不会和元素固有属性冲突。jQuery的缓存提供了访问data-*的接口,与html5标准结合更加紧密,更加规范。 提问:jQuery不同版本的缓存实现原理是什么? 答:jQuery1.x与jQuery2.x、jQuery3.x是不同的。 jQuery1.x系列中,需要兼容ie6、ie7等早期的浏览器,在ie6、ie7这样的浏览器中,根据艾伦的博客,我们可以知道DOM元素与js对象相互引用,是会引起浏览器的内存泄漏问题。所以 jQuery1.x中,最大的问题是要防止在ie6、ie7浏览器上出现内存泄漏。为了避免DOM元素与js对象相互引用而造成的内存泄漏,jQuery必须从设计解决对象循环引用的问题。所以jQuery1.x将需要缓存到元素上的数据

jQuery源码分析随笔之数据缓存

删除回忆录丶 提交于 2020-03-16 20:10:00
jQuery的数据缓存机制对于js Object和DOM node分别存在两种方式: 情况一:对于js Object,数据就存储在Object本身,只不过数据都存储在Object下一个以“jQuery”开头的属性之下 例如: var obj = {}; $.data(obj, "username", "scott"); console.log(obj); 此时obj为: {   jQuery16302287385049276054:{     username: "scott"   } } 情况二:对于DOM node,数据则存储在jQuery.cache之中node对应的id号之下 例如: var elem = document.createElement("div"); $.data(elem, "password", "tiger");console.log(elem[$.expando]); console.log($.cache); 输出为: 1 {1:{password:"tiger"}} 这个例子中node对应的id为1,存储在其自身的$.expando属性之下,此id即对应$.cache中存储器数据位置的id,即这样建立起的对应关系 这里需要说明的是,$.expando的值即是以"jQuery"开头后面一串数字的字符串,例如前面的

underscore.js源码解析(一)

落花浮王杯 提交于 2020-03-16 19:12:13
一直想针对一个框架的源码好好的学习一下编程思想和技巧,提高一下自己的水平,但是看过一些框架的源码,都感觉看的莫名其妙,看不太懂,最后找到这个underscore.js由于这个比较简短,一千多行,而且读起来容易一些,所以就决定是它了,那废话不多说开始我们的源码学习。 underscore.js源码GitHub地址: https://github.com/jashkenas/underscore/blob/master/underscore.js 本文解析的underscore.js版本是1.8.3 结构解析 我们先从整体的结构开始分析(其中加入了注释加以解释说明) 1 (function() { 2 // 创建一个root对象,在浏览器中表示为window(self)对象,在Node.js中表示global对象, 3 // 之所以用用self代替window是为了支持Web Worker 4 var root = typeof self == 'object' && self.self === self && self || 5 typeof global == 'object' && global.global === global && global || 6 this; 7 // 保存"_"(下划线变量)被覆盖之前的值 8 var previousUnderscore =

spring源码

喜夏-厌秋 提交于 2020-03-16 17:57:10
你可能需要阅读底层框架源代码: 你打算发明一个类似Spring Framkework一样的框架,可以参考源代码。 你自认为发现了Spring的一个Bug,并提交到官方的Issues list,且得到确认。而你想贡献自己的力量帮助Spring团队解决这个Bug。不过在你发现疑似Bug的时候,最好先去Issues list里面或者stackoverflow上找一下答案再说。以目前Spring的健壮性和被广泛采用的程度,几乎没有可能有一个Bug被你捡漏。 Debug跟踪进入底层框架代码的时候,不得不看两眼。 来源: CSDN 作者: 雨露天泽 链接: https://blog.csdn.net/m18330808841/article/details/104887376