2017/8/7---2017/8/31
8/7
1.Android线性内存分配器LinearAlloc
目的:申请一块只写一次(write once)的内存(即分配并完成初始化写入后
一般不会再改变,保持只读性质)
作用:主要用于管理类加载时的内存
特性:在程序的整个运行周期都是有效的,同时它还有共享的特性,一个应用
加载后其它进程可以共享使用这些已加载的类从而加快程序的启动和运
行速度
在Java中动态分配内存是由堆来管理的,需要一个垃圾收集器来管理
垃圾,对于永久存在的内存区不需要垃圾收集器的扫描清除
2.嵌套滚动NestedScrolling---了解原理和接口
8/8
- 嵌套滚动NestedScrolling--实现饿了么页面效果(外加购物车效果)
http://blog.csdn.net/al4fun/article/details/53889075
2.ViewTreeObserver:
A view tree observer is used to register listeners that can be notified of global changes in the view tree.A ViewTreeObserver should never be instantiated by applications as it is provided by the views hierarchy
8/9
1.实现饿了么页面效果(外加购物车效果):没成功,打算看一下scrollview的底层实现,经过今天,发现对于scrollview嵌套viewpager/recyclerview控件不太了解.
8/10
1.Android8.0 运行时权限,Android M之前开发者需要权限直接在清单文件中申请就可以使用了,Android M之后,还要经过用户的同意;Android O与M的区别在于,M版本如果用户同意了某个权限,那么同一个权限组权限的也默认同意了,而O是申请哪个就只有哪个权限被同意.
http://blog.csdn.net/yanzhenjie1003/article/details/76719487?utm_medium=email&utm_source=gank.io
2.View瞬移的方法:
1.改变left、right、top、bottom的值:通过在layout()方法中 或者
offsetLeftAndRight()/offsetTopAndBottom()
2.scrollto 或者 scrollby
3.修改layoutParams参数
4.setTranslationX/setTranslationY
View平滑移动
1.scroller配合scrollTo来控制内部view的平滑移动
2.通过ValueAnimator的计算效果,在回调方法onAnimationUpdate中配合上面
三种的任何一种实现平滑移动
3.ViewDragHelper:一个很强大的处理drag and reposition
views within their parent ViewGroup的工具类
http://blog.csdn.net/lmj623565791/article/details/46858663
8/17
1.ItemTouchHelper:this is a utility class to swipe to dismiss and drag &drop support
to RecyclerView.(一个让 RecyclerView 支持滑动删除和拖拽的实用工具类)
2.clipToPadding:
Defines whether the ViewGroup will clip its children and resize(but not clip) any EdgeEffect to its padding,if padding is not zero.This property is set to true by default.(是否允许ViewGoup在padding中绘制子view)
clipChildren
Defines whether a child is limited to draw inside of its bounds or not.
The default value of this property is true
一句话概括就是:是否允许子View超出父View
3.Fragment ------add()和replace()的区别 (生命周期有区别)
8/18
1.Fragment全解析系列http://www.jianshu.com/p/d9143a92ad94
1、getActivity()空指针
2、异常:Can not perform this action after onSaveInstanceState
3、Fragment重叠异常-----正确使用hide、show的姿势(内存重启、mHidden)
4、Fragment嵌套的那些坑
5、未必靠谱的出栈方法remove()
6、多个Fragment同时出栈的深坑BUG
7、深坑 Fragment转场动画
作者:YoKey
链接:http://www.jianshu.com/p/d9143a92ad94
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
2.LayoutTransition:
用于当前布局容器中有View添加,删除,隐藏,显示的时候定义布局容器自身的动画和View的动画。也就是说当一个LinerLayout中隐藏一个view的时候,我们可以自定义整个LinerLayout容器因为隐藏了view而改变的动画,同时还可以自定义被隐藏的view自己消失时候的动画。你可以先实例化一个LayoutTransition对象,通过setLayoutTransition()方法将对象设置进一个布局容器ViewGroup中去.
3.LayoutAnimation
4.Transition框架提供了Content(内容)和ShareElement(共享元素)两种过渡动画:
1) Content(内容) Transition 确定了非共享元素如何 进入/退出 Activity 场景
2)共享元素(Shared Element) Transition 确定了两个Activity 共享 View (也被叫
做主角视图)的动画效果。
8/22
1.viewstub实现原理
2.仿写Fragmentation的Demo
8/23
1.onResume和onResumeFragments的区别:有道笔记
8/24
1.当Activity/Fragment处于Pause(Stop)状态时如何处理Handler Message(见笔记)
2.如果在Activity的生命周期中commit Transaction,要在onCreate/onResumeFragments/onPostResume中进行,其他生命周期函数有可能在Activity状态没有被完全恢复前被调用
(就是在Activity恢复的过程中,不能进行Transaction操作,onCreate(开始恢复)和onResumeFragments/onPostResume(状态恢复完成)是可以的)
8/25
- Handler.sendMessage(new Message) 须发送新对象,否则会出现This message is already in use
2.可以选择在一个没有布局的Fragment中,执行异步任务,因为这样可以感知Activity的生命周期变化,比如当Activity#onPause,停止一些操作
或者可以使用Android提供的getLoaderManager----Loader加载器
两者的共同点:都随Activity生命周期的变化而改变一些操作
8/28
1.Android 避免踩坑 之 7.0脱坑指南
http://mp.weixin.qq.com/s/DtQcYROR1Dc2WCYQ-UvRsg