我的android总结笔记

近日,我简单的对目前我所掌握的觉得有必要提得知识点做了简单的总结。哎呀呀,只想说一句’革命尚未成功,前路道阻且长‘啊。加油吧,少年!

一、activity的启动模式
分为4种:普通模式、栈顶模式、栈内模式、单例模式。
注:普通模式,activity一直创建。栈顶模式,如果已是栈顶则不创建,直接走newIntent,否则创建activity,栈内可能有重复的activity对象。栈内模式,遍历栈,查找activity对象,将当前activity之前的所有activity从栈内移除。单例模式,一栈一对象。
二、service的启动方式
1.startService
注:services的回掉方法(如onCreate)都是在主线程中执行的。若三次调用startService,只执行一次onCreate,三次调用onStartCommand。
2.bindService
注:典型的c-s模式,多个client可以绑定同一个service。绑定周期与被绑定的client息息相关,随client的结束而结束。
三、service与线程的区别
service是Android的一种机制,如果是localService,那么它是运行在main线程上的。如果是remoteService,那么它就是运行在独立进程的main线程上的。而线程则是程序执行的最小单元。
四、localService与remoteService的区别
localService是运行在当前进程的main线程上的。优点就是节省资源,主进程结束后,service也会结束。
remoteService是运行在独立进程的main线程上的。生命周期不受当前进程影响。需要使用AIDL进行IPC,相对来讲会耗些资源。创建即在service中添加Android:process =“进程名”属性。
五、事件分发
事件分发顺序:activity->viewGroup->view,通过onTounchEvent的move、up、down等事件具体操作。
activity和view中主要的函数:dispatchTouchEvent与onTouchEvent。当返回值为true时停止分发,返回false则向下分发。
viewGroup中的主要函数:dispatchTouchEvent、onInterceptEvent和onTouchEvent。当返回值为true时,停止分发,返回值为false,向下分发。当同时对父view与子view设置点击,则优先响应子view的事件(先遍历子view再管父view的事)。
六、通信方式
1.跨进程通信方式:intent(setCompount)、service(AIDL)、broadCast、contentProvider
2.跨线程通信:broadCast、handler 、eventBus等
七、view的绘制流程
onMeasurn->onLayout->onDraw
view的坐标原点是:屏幕的左上角。
八、android的三级缓存机制
内存->本地硬盘->网络。
九、bitmap
bitmap的内存公式:1像素的byte大小*像素总数。
减小bitmap内存的策略:
1. 压缩图片,如使用ARGB_565,设置inSampleSize。
2. 将图片放到合适的资源文件中。
3. 缩减图片尺寸。
十、强、软、弱引用
强引用指,直接new的对象,这种对象如果不是client主动解除引用,则引用会一直存在,占用内存。软引用指,当系统内存不足时,gc可以主动释放掉软引用所占的内存(如glide中图片在内存中的缓存,就是使用的软引用)。弱引用指,随时都有可能被gc回收内存(如handler防止内存泄漏的策略就是使用弱引用)。
十一、android性能优化
[https://blog.csdn.net/carson_ho/article/details/79549417]
十二、java线程池
newFiexdThreadPoll:核心线程数与工作线程数相等。适用于低并发。
newCacheThreadPoll:核心为0,工作为最大。适用于高并发
newSingleThreadPoll:核心=工作=1。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值