虚拟机是一个很大的话题,很多内容可以写,本篇先从类的加载到函数运行做一个简单的记录。关于这整个流程,一般的逻辑可能这样

  1. 我们的DVM(Dalvik Virtual Machine)是怎么启动的
  2. 启动后,JAVA类是怎样的加载和初始化
  3. 初始后,我们的函数Method是怎么执行的
Read more »

针对内存优化,打算开两篇,一篇为介绍工具篇,利用现有的工具,来帮助我们更好的解决问题。
在有一定的实践经验后,再另外写一篇,介绍些原理,了解内存模型等内容,这有助于我们写出更好的程序。
先使用,再说原理,我认为这样的安排,才是符合人类认知的,我们总是先接触,对事物有个大概的认知,然后深入了解后,才会做出总结和归纳演绎等,把内容抽象化,得出些结论性的内容。再利用理论来更好的指导我们工作。

本次涉及到的工具有Android Studio自带的Memory Monitor,然后是些adb命令。
最后来看下Deep Memory Profile。

Read more »

软件性能优化是一个很大的概念,这里从自带的一些工具开始,利用工具来协助我们对性能做优化。
当然据闻牛逼的人纯看代码直接看出来问题,哈。

解决系统性能问题的几个主要步骤是:找->定->调

Read more »

The Android framework provides two animation systems: property animation and view animation. Both animation systems are viable options, but the property animation system, in general, is the preferred method to use, because it is more flexible and offers more features. In addition to these two systems, you can utilize Drawable animation, which allows you to load drawable resources and display them one frame after another.

enter image description here

Read more »

本文尝试从源码的角度来对permission等机制做一个了解。
另外从安装一个apk的整个流程来看与permission相关的内容。

Android 是一个权限分离的系统。利用 Linux 已有的权限管理机制,通过为每一个APP分配不同的uidgid,从而使得不同的 App之间的私有数据和访问(native 以及 java 层通过这种 sandbox 机制,都可以)达到隔离的目的。

与此同时,安卓在此基础上还进行了扩展,提供了permission机制,它主要是用来对App可以执行的某些具体操作进行权限细分和访问控制,同时提供了per-URI permission 机制,用来提供对某些特定的数据块进行 ad-hoc 方式的访问。

Read more »