读Android高手进阶笔记

不错的视频http://edu.csdn.net/course/detail/1923/29851?auto_start=1

http://m.blog.csdn.net/article/details?id=52957488

1. 在onCreate中开线程更新ui,是可以的。

原因: ui线程rootview在onResume之后才建立.

2.下载源码:

  1.android studio :  sdk manager 只能查看framework层源码。下载位置在sdk里。

  2:repo需要翻墙。

3.查看源码

1. studio

2.ecplise


4.onSaveinstance:

1.activiy回收的时候。

2.配置改变的时候,比如旋转屏幕。


5.启动模式:

1.standard:

2.singletop:

3.singletask:自带cleartop

4.singleinsance:所有栈,只有一个实例


6.



7.IPC

1.binder

2.aidl

3.messger

4.广播

5.socket

6.contentprovider


8.多进程

1.数据不能互相访问。

2.sharedpreference 最好别使用


9序列化:

可以夸进程传输。

1. parcelable : 效率高,麻烦。  serializable:效率高,实现简单。

静态成员变量不参与序列化过程。标记。transient


10binder:

服务端:有异常,可以传递给客户端。自己不会异常中断。


11简单ipc

SharedPreferences不支持多线程,进程也是不安全的

12.Messenage收消息必须用handler




13 view 动画:

scrollto :内容的移动变化

objectanimator: 属性动画

translation  view动画,只是图像的变化,原来的位置还有那个控件。



14.自定义drawable. 参考 bitmapdrawable shapedrawable. 比xml定义要灵活。


15。remoteview: 反射实现的。跨进程。不能有edittext. 知道包名和view的id,就可以夸应用显示。


16.mat和leakcanary 内存泄露 leakcanary比较实用


17.线程池:



23 解决滑动冲突。

scrollview 包含了 listview:

父元素scrollview,拦截世纪


24获得view的宽高的方法:有三个:

   1. onWindowFocusChanged

    2. view.post

    3.getViewTreeObserver().addOnGlobalLayoutListener()

  4. wrap_content 不能getHeight, 用getMeasuredWidth()。之前要执行xxx.mesure();

   int heightMesureSpec = MeasureSepc.makeMeasureSpec ( (1 << 30) -1 , MeasureSepc.AT_MOST)
    button.messure(0 , heightMesureSpec)

Draw方法:顺序,先画父元素。

dispatchdraw :在onDraw之后调用。






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值