App develop note

To Be Powerful

JAVA 动态代理

代理模式 代理模式是一种常见的设计模式,为其他对象提供一种代理以控制对这个对象的访问。代理类与委托类有同样的接口,代理类负责为委托类预处理,过滤和转发消息,并进行消息被委托类执行之后的逻辑处理 静态代理 开发人员实现代码或使用特定工具生成代码之后编译,在程序运行之前,代理类的class文件以及存在 例: //接口 public interface Subject { publ...

Retrofit的使用

最近将Android项目的网络连接库切换到了Retrofit 2.0,以前用的Volley。 使用Retrofit后接口更加接近RESTful风格。逻辑更加清晰,更加灵活。 基本使用 定义接口: 新建一个Service接口类,在该类中声明要调用的接口。 例如: public interface GitHubService { @GET("users/{us...

Android Binder

android是基于Linux的系统,进程之间是相互隔离的,Binder就是开发出来用以解决进程之间通信的(IPC)。 实现进程之间的通信Linux有多重实现方式,由于android是手机操作系统,内存受限,需要合适的机制来保证对空闲进程的回收,还有系统安全问题,移动平台权限问题,进程终止通知的需求,况且android不支持 system V IPCs.所以设计开发了Binder来处理an...

Java内存

Java堆内存模型: Young Generation / Eden Space 伊甸园区,所有新对象都在该区域创建,如果Eden区域没有足够的空间容纳新对象,进行GC。内存占用到达该区域设定的任意阈值,新生代垃圾回收机制(Minor GC)就会启动。Minor GC非常频繁,速度也比较快。首先清除所有的非引用对象,并将引用对象从’From’和‘Eden’区移至’To’幸存者区。垃圾...

git提交信息规范

使用Git时,每次提交代码,都要写 Commit message(提交说明),否则git就不允许提交本次改动。 $ git commit -m "msg" msg就是提交说明,默认个情况下写什么都行。但是一般情况下,应该简述下本次改动的内容和影响的范围。 目前有多种填写规范,但是使用最广的还是Angular规范。 Commit Message 的格式 — 包括三部分,Header...

关于《人人都是产品经理》

前段时间这个概念个很火,公司的高层,产品经理,业务都经常引用这句话,甚至在公司的大会议上高层都说这个概念。我第一次听到这个概念的时候,就持怀疑的态度,后面大家提的多了,就越来越来好奇。 后来我找了两天时间把这本书读了一遍,发现这本书就是一本产品经理的入门书,作者写的也是面向-1-3岁的产品经理。 总的来说这本书写的还不错,里面写了好多公司内部的例子,能让大家看到一点干货。适合新手看看。资历...

Block

block即代码块,将同一逻辑的代码放在一快区域中,使代码更简洁紧凑,易于阅读,而且它比函数使用更方便,代码更美观,因而广受开发者欢迎。block 只是 Objective-C 对闭包的实现,并不是 iOS 独有的概念,在 C++、Java 等语言也有实现闭包,名称不同而已 block实现原理 源码: int main() { void (^blk)(void) = ^{ .....

android postDelayed实现

在android中做延时处理一般用handler.postDelayed()和view.postDelayed(action,delay)来实现,view.postDelayed也是通过handlder.postDelayed来实现的,不过有一些特殊处理的地方。 handler.postDelayed handler处理延时逻辑是通过发送延时消息来处理的 //source public...

栈内存与堆内存

内存模型 栈区(Stack) 由编译器自动分配释放,存放函数的参数值,局部变量的值,操作方式类似于数据结构中的栈。只要栈的剩余空间大于所申请空间,系统将为程序提供内存,否则将报异常提示栈溢出 堆区(heap) 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收。用于存放对象。 操作系统有一个记录空闲内存地址的链表,当系统收到程序的申请时,会遍历该链表,寻找第一个空间...

使用github pages搭建博客

做为一个程序员,有时候需要记录一些解决问题的过程或一些想法,或者是新东西的学习,博客是个很好的解决方案。又可以分享帮助他人。但是又想做的个性一点,考察了下,最后选择了使用github pages来搭架。 github pages的特点: 免费,可靠 如果你经常使用github,可以提供很多便利 很好的支持Markdown,可以使用大...