自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(9)
  • 收藏
  • 关注

原创 设计模式

从Android项目学习设计模式这个月看了一遍《Android源码设计模式解析与实战》,又一次被android中framework层的设计震惊了,也得到了一些学习的心得体会,“想要理解一个概念,要先理解why,然后才深入how,不能深入细节而忘了初衷”。面向对象六大原则设计模式其实就是面向对象的六大原则的体现。S:单一职责(Single Responsibility Princ...

2018-04-12 20:06:09 187

原创 排序算法

内部排序算法1.通过交换进行排序快速排序核心思想:在数组中选一个中轴元素(比如数组首元素),将余下的元素和中轴元素做比较,小的在左边,大的在右边,然后以中轴元素为界,用递归的方式对左右部分的元素分别重复上述操作。快排中最重要的操作就是把小于中轴元素的放左边,否则放右边,通常有三种方式:从两端扫描交换、两端扫描填坑,单端扫描,下面的代码用了单端扫描的方式。jdk7还增加了双轴...

2018-03-13 19:50:50 172

原创 ActivityManagerService流程总结

ActivityManagerService流程总结ActivityManagerService是一个Binder服务,用来负责系统中四大组件的管理和调度。1.ActivityManagerService启动流程分析Android系统第一个启动的进程是Zygote进程,是通过脚本启动的,这个进程启动后马上会通过fork启动一个System Server进程,system serve...

2018-02-08 16:51:36 555

原创 Android内存性能分析

Android内存性能分析工具:Android Studio、MAT(Memory Analyzer Tool)第三方库:LeakCanary1、Android Profiler基础用法首先附上Android Profilder的官方使用说明地址:https://developer.android.google.cn/studio/profile/memory-profil...

2018-02-03 18:34:23 489

原创 APK的安装过程分析(PackageManagerService启动过程)

APK的安装过程分析(PackageManagerService启动过程)时序图步骤说明1.pkms的main函数入口2.加入android.uid.system,android.uid.phone等一些系统的shareUserId,保存到SharedUserSetting数据结构3.保存shareUserId到Uid的数据结构中4.从system/etc/perm

2018-01-28 18:03:46 278

原创 Android加载图片内存分析

Android 加载图片内存分析问题1:通常一个手机会为一个app分配多大内存,如果不释放资源,一部手机加载多少张图片会产生oom问题2:bitmap所占内存跟什么因素有关问题3:怎么监测android内存变化情况实验对几部手机进行了测试 int maxMemory = (int) Runtime.getRuntime().maxMemory();Log.i(LOGT

2018-01-21 13:38:04 635

原创 mac编译源码

Mac 编译 android framework 6.0源码工作到现在为止刚好一年半,一直做着公司Android产品的半开发半维护的工作,内心一直向往一份关于android framework开发方面的工作,前面几个月研读了一些设计模式和android framework源码的书,接下来的目标就是搭建调试framework的环境,听说mac不错,于是买了个mba 128g的笔记本,现在有点后悔

2018-01-06 14:50:12 2325

原创 图解Binder——类图和时序图

Binder是用在Android系统中的一个进程间通信(IPC)机制,使用C/S架构,服务端和客户端通过Binder进行跨进程的数据交换,Binder继承自IBinder接口,因此IBinder接口最重要的一个方法是transact,其本质都是从源进程传递数据给目标进程,然后目标进程处理完后再把数据回传给源进程。Binder通信基本上是同步的,因此画了时序图来方便自己理解。

2017-11-05 16:57:55 1707

原创 图文解析Android 消息处理机制

图文解析Android 消息处理机制

2017-10-15 14:41:56 841

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除