自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

aggresss

A tinker and plumber

  • 博客(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关注的人

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