- 博客(10)
- 收藏
- 关注
原创 第十二期 Android ROM结构分析《手机就是开发板》
Android的ROM结构相比传统的bootloader+kernel+filesystem的嵌入式架构略复杂一些,通常我们从手机官方网站上下载的升级包都是zip格式,如果解压后你会发现里面有几个img或者bin后缀的文件。 这里说明一下,因为手机的厂商对自己的保护,在手机上的bootloader通常不是开源的,即使我们获得了源码但也是不允许公开的,而且再没有jtag调试器的情况
2016-12-31 15:08:24 4172
原创 第十一期 基于模拟器的Helloworld APP 访问硬件服务 《手机就是开发板》
这一期我们来实现一个APP,从application层面来验证我们的HelloService服务。写APP还是得用IDE的开发环境来实现比较便捷,因为JAVA的开发环境不像C那样,使用VIM+各种插件就可以满足开发需要,所以建议使用android studio 进行开发,工程文件我放在https://github.com/aggresss/PHDemo.git 中的 Code目录下的 hell
2016-12-12 11:03:51 1874 1
原创 第十期 基于模拟器的Helloworld Framework接口 《手机就是开发板》
这一期我们在Android系统的Application Frameworks层提供Java接口的硬件服务,结合上一期添加的JNI方法来调用底层硬件。下面提到的代码保存在https://github.com/aggresss/PHDemo.git 的Code目录的hello_Framework文件中,也可以直接访问:https://github.com/aggresss/PHDemo/tre
2016-12-11 22:08:45 1513
原创 第九期 基于模拟器的Helloworld JNI方法 《手机就是开发板》
这一期我们来写一个JNI方法,JNI是Java Native Interface的缩写,它提供了若干的API实现了Java和其他语言的通信(主要是C&C++),JNI是Java调用Native机制,是Java语言自己的特性全称为Java Native Interface,类似的还有微软.Net Framework上的p/invoke,可以让C#或Visual Basic.NET可以调用C/C++的
2016-12-11 20:17:31 1685
原创 第八期 基于模拟器的Helloworld HAL接口 《手机就是开发板》
Android 下的驱动总能和HAL放在一起被提起,估计当年Google就是因为HAL被Linux开源社区踢出去的。大家知道 驱动程序可以分成两个部分:硬件控制和业务逻。因为驱动要编译进内核,即使编译成模块也受GPL制约,所以Googl将android系统的驱动程序分成两层,硬件控制层放到内核驱动里,业务逻辑部分放到HAL里,可以不用开源,保护了部分芯片商的利益,估计这事是高通和Google一起想
2016-12-11 07:18:16 1891
原创 第七期 基于模拟器的Helloworld 可执行程序 《手机就是开发板》
这一期我们来写一个小程序运行在android 的shell里面,和普通的linux shell一个原理,用这个可执行文件来验证上一期写的驱动程序,也就是操作 /dev/hello 设备文件。下面提到的代码可以到https://github.com/aggresss/PHDemo 的Code 目录下的 hello_Execute 文件中下载,也可以访问这个链接直接查看:https:/
2016-12-10 21:35:27 1859
原创 第六期 基于模拟器的Helloworld 内核驱动 《手机就是开发板》
这一期我们来做一个给内核添加驱动的实验,为了编译方便,我将android kernel 文件拷贝到AOSP目录下,修改目录名为kernel3.4,在kernel3.4的 drivers 目录下新建hello文件夹,我将添加的内容都放到了github上:http://github.com/aggresss/PHDemo 。里面的Codes/hello_KernelDriver 目录下 或者直接访
2016-12-10 12:34:38 2813 1
原创 第五期 基于模拟器上的实践和学习规划 《手机就是开发板》
前面三期我们分别动手实践了AOSP,kernel和APP的编译环境搭建,这是我们实践的基础,接下来我们继续深入,探索一下android的组成原理,并且每个环节都设置一个实验来验证学习的理论。在使用真正的手机操作之前我们有必要使用之前搭建的模拟器(emulator)来进行一些实验,通过一些简单的Demo程序来对android这个庞大的系统有一个感性的认识,因为模拟器的不存在真是的硬件,这样排除了硬件
2016-12-09 14:32:44 2005
原创 第四期 Android Studio 开发环境搭建 《手机就是开发板》
Android下的可视化开发工具主流的有eclipse和android studio 两种,android在5.0以后已经放弃是对eclipse的插件ADT的继续支持,所以还有Android 5.0 以后的API开发尽量使用android studio作为开发环境。不过eclipse还是很好用的,尤其是使用习惯了eclipse的几个经典的插件和常用的快捷键,刚刚转到基于intellij idea的
2016-12-08 22:24:43 3762
原创 第三期 Android Kernel 下载和编译 《手机就是开发板》
Android源码默认不包含他所使用的Linux内核源码,所以需要另外下载和编译。在生成镜像包时将单独编译生成的Image文件整合到boot.img中,这一期我们来下载和编译kernel。android kernel是在Linux kernel的基础上修改而来的,增加了适用于移动设备的IPC系统,日志系统,电源管理系统等等,android刚起步时kernel部分作为Linux kernel的一
2016-12-05 05:53:22 8139 4
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人