摘要:Android C++框架层的引用计数技术C++中对指针的使用时很头疼的事情,一个是经常会忘记free 指针,造成内存泄露,另外一个就是野指针问题:访问已经free掉的指针。程序debug工作的相当大部分,都是花费在这。Android中通过引用计数来自动管理指针的生命周期,动态申请的内存将会在不再需...
阅读全文
摘要:Android中通过引用计数来实现智能指针,并且实现有强指针与弱指针。由对象本身来提供引用计数器,但是对象不会去维护引用计数器的值,而是由智能指针来管理。要达到所有对象都可用引用计数器实现智能指针管理的目标,可以定义一个公共类,提供引用计数的方法,所有对象都去继承这个公共类,这样就可以实现所有对象都...
阅读全文
摘要:android系统编译流程简要分析与使用开发Linux编程的程序员都清楚,Makefile是一个很重要的文件,该文件一个重要作用就是指定了编译规则。如此庞大的android系统源码当然也不例外了。android源码中Android.mk就充当了Makefile的角色。android系统的编译系统太过...
阅读全文
摘要:编译Linux下的android SDK和模拟器和前面编译android源码一样,首先执行envsetup.sh,然后选择SDK对应的产品。这里要强调一下,当我们使用lunch 列举android源码支持的产品的时候,是看不到有SDK相关的信息的,至少我的是看不到。不过没关系,直接执行命令即可lun...
阅读全文
摘要:android源码编译后得到system.img,ramdisk.img,userdata.img映像文件。其中,ramdisk.img是emulator(模拟器)的文件系统,system.img包括了主要的包、库等文件,userdata.img包括了一些用户数据,emulator负责加载这3个映像...
阅读全文
摘要:上一篇中介绍了如何编译android4.2.2源码前的准备工作,现在介绍android源码编译流程。这里我们编译一个ARM处理器的模拟器版本。执行envsetup.sh脚本执行lunch命令,可以显示出可供编译的目标在上图中看到有eng版本,userdebug版本,还有user版本我没有截图上去,这...
阅读全文