
手机开发
TYW----子曰小玖
人生最重要的不是所在的位置,而是所朝的方向。
展开
-
第一期 前言 《手机就是开发板》
https://blog.csdn.net/aggresss/article/details/53364324#commentBox 前几天翻抽屉发现了一堆旧手机,不禁感慨,从2009年开始使用android系统的手机到现在,平均每十个月就换一个手机,因为工作原因很熟悉nand和eMMC存储器的工作原理,知道手机内的个人信息即使被删掉也是可以轻易恢复的,所以出于隐私保护的因素每一个旧手机我都...转载 2019-01-11 14:29:32 · 1070 阅读 · 4 评论 -
第十二期 Android ROM结构分析《手机就是开发板》
https://blog.csdn.net/aggresss/article/details/53955998 Android的ROM结构相比传统的bootloader+kernel+filesystem的嵌入式架构略复杂一些,通常我们从手机官方网站上下载的升级包都是zip格式,如果解压后你会发现里面有几个img或者bin后缀的文件。 这里说明一下,因为手机的厂商...转载 2019-01-12 10:57:23 · 680 阅读 · 0 评论 -
第十三期 AOSP 编译环境初始化过程分析《手机就是开发板》
https://blog.csdn.net/aggresss/article/details/53968884在之前的实验中,我们使用几个简单的命令就可以编译出适用于模拟器qemu运行的Android客户端 : source ./build/envsetup.sh 然后 lunch 最后 make,等上一盏茶的功夫,镜像就编译出来了。对于经常下载源码自己编译的兄弟一定很好奇,AOSP编译方式在...转载 2019-01-12 10:57:41 · 524 阅读 · 0 评论 -
第十四期 AOSP 编译系统分析《手机就是开发板》
https://blog.csdn.net/aggresss/article/details/53976626AOSP的的编译过程复杂就在于要编译很多种类型的目标文件,不像kernel那样,只需要一种编译工具就能完成,在AOSP中主要包括以下几种目标文件:1. APK程序,一般的Android程序,编译打包生成apk文件2. Java库,java类库,编译打包生成jar文件3. C\C+...转载 2019-01-12 10:57:57 · 613 阅读 · 0 评论 -
第十五期 在AOSP上建立一个新产品《手机就是开发板》
https://blog.csdn.net/aggresss/article/details/53985084这一期我们来做一个实践,在AOSP上建立一个新产品,编译出镜像文件在模拟器emulator上运行。在实验前我们先整理一下思路,分析一下编译流程必要的定制文件。首先是执行./build/envsetup.sh会扫描device各子目录下的vendorsetup.sh,然后执行lunch...转载 2019-01-12 10:58:11 · 522 阅读 · 0 评论 -
第十六期 CyanogenMod 小米3W刷机《手机就是开发板》
https://blog.csdn.net/aggresss/article/details/53998257通过前面的介绍我们对Android系统是如何编译生成的以及软件的运行机制有了一个大概的了解,用模拟器来模拟Android系统还是不够直观,还是使用真机来模拟一下更有感觉,这一期我们来使用小米3联通版(MI3W)来刷Android系统。对于在Android平台上喜欢刷机的朋友应该应该都...转载 2019-01-12 10:58:25 · 569 阅读 · 0 评论 -
第十七期 CyanogenMod 编译小米3W《手机就是开发板》
https://blog.csdn.net/aggresss/article/details/53999626上一期我们使用直接下载的第三方固件在手机上刷机通过,相对于源码级别的改装还只是皮毛,这一期我们来实践下载并编译CyanogenMod源码,编译出固件并刷机试验。这里假设您已经搭建了AOSP的源码编译环境,如果没有请转到第二期。1.下载和编译前安装下面这些软件:sudo apt...转载 2019-01-12 10:59:28 · 369 阅读 · 3 评论 -
第十八期 Android GPS原理分析《手机就是开发板》
https://blog.csdn.net/aggresss/article/details/54318662如果想对Android的整个框架有一个更深层次的感性认识,我们还需要抓住一个点去研究一下。Android按照模块分成很多个系统,比如Audio,Video Out,Camera,Phone,WIFI,Blue Tooth,Light,Battery,Input,Codec,3D acc...转载 2019-01-12 10:59:41 · 610 阅读 · 0 评论 -
第十九期 Android中修改GPS数据实验《手机就是开发板》
https://blog.csdn.net/aggresss/article/details/54318905 这一期我们来做一个简单的实验,实验的前提是要对当作开发板的手机有从源码编译的能力,如果还没有实现,请参考前几期内容。上一期我们分析了GPS定位数据是如何在Android中逐层上报的,如果不实践一下还是觉得不太直观。 不多说了,直接修改文件,进入到Android的源码...转载 2019-01-12 10:59:54 · 1074 阅读 · 2 评论 -
第十一期 基于模拟器的Helloworld APP 访问硬件服务 《手机就是开发板》
https://blog.csdn.net/aggresss/article/details/53580520 这一期我们来实现一个APP,从application层面来验证我们的HelloService服务。写APP还是得用IDE的开发环境来实现比较便捷,因为JAVA的开发环境不像C那样,使用VIM+各种插件就可以满足开发需要,所以建议使用android studio 进行开发...转载 2019-01-12 10:57:04 · 259 阅读 · 0 评论 -
第十期 基于模拟器的Helloworld Framework接口 《手机就是开发板》
https://blog.csdn.net/aggresss/article/details/53576022 这一期我们在Android系统的Application Frameworks层提供Java接口的硬件服务,结合上一期添加的JNI方法来调用底层硬件。 下面提到的代码保存在https://github.com/aggresss/PHDemo.git 的Co...转载 2019-01-11 14:50:20 · 214 阅读 · 0 评论 -
第二期 AOSP 环境搭建、下载和编译 《手机就是开发板》
https://blog.csdn.net/aggresss/article/details/53393511 Android最初是由Andy Rubin基于linux内核开发出来用于数码相机的操作系统,Android名字的原型是Andy Rubin小时候最喜欢的一个游戏人物,logo的原型是UI设计师在看到卫生间的简约图标时设计出来的。2005年8月android被Google发现而且收购...转载 2019-01-11 14:33:12 · 1154 阅读 · 0 评论 -
第三期 Android Kernel 下载和编译 《手机就是开发板》
https://blog.csdn.net/aggresss/article/details/53461464 Android源码默认不包含他所使用的Linux内核源码,所以需要另外下载和编译。在生成镜像包时将单独编译生成的Image文件整合到boot.img中,这一期我们来下载和编译kernel。android kernel是在Linux kernel的基础上修改而来的,增加了...转载 2019-01-11 14:35:01 · 667 阅读 · 0 评论 -
第四期 Android Studio 开发环境搭建 《手机就是开发板》
https://blog.csdn.net/aggresss/article/details/53525468 Android下的可视化开发工具主流的有eclipse和android studio 两种,android在5.0以后已经放弃是对eclipse的插件ADT的继续支持,所以还有Android 5.0 以后的API开发尽量使用android studio作为开发环境。不过...转载 2019-01-11 14:36:43 · 1926 阅读 · 0 评论 -
第五期 基于模拟器上的实践和学习规划 《手机就是开发板》
https://blog.csdn.net/aggresss/article/details/53538575 前面三期我们分别动手实践了AOSP,kernel和APP的编译环境搭建,这是我们实践的基础,接下来我们继续深入,探索一下android的组成原理,并且每个环节都设置一个实验来验证学习的理论。在使用真正的手机操作之前我们有必要使用之前搭建的模拟器(emulator)来进行...转载 2019-01-11 14:37:55 · 209 阅读 · 0 评论 -
第六期 基于模拟器的Helloworld 内核驱动 《手机就是开发板》
https://blog.csdn.net/aggresss/article/details/53557699这一期我们来做一个给内核添加驱动的实验,为了编译方便,我将android kernel 文件拷贝到AOSP目录下,修改目录名为kernel3.4,在kernel3.4的 drivers 目录下新建hello文件夹,我将添加的内容都放到了github上:http://github.com...转载 2019-01-11 14:42:07 · 357 阅读 · 0 评论 -
第七期 基于模拟器的Helloworld 可执行程序 《手机就是开发板》
https://blog.csdn.net/aggresss/article/details/53561241这一期我们来写一个小程序运行在android 的shell里面,和普通的linux shell一个原理,用这个可执行文件来验证上一期写的驱动程序,也就是操作 /dev/hello 设备文件。下面提到的代码可以到https://github.com/aggresss/PHDemo 的C...转载 2019-01-11 14:43:56 · 232 阅读 · 0 评论 -
第八期 基于模拟器的Helloworld HAL接口 《手机就是开发板》
https://blog.csdn.net/aggresss/article/details/53571487 Android 下的驱动总能和HAL放在一起被提起,估计当年Google就是因为HAL被Linux开源社区踢出去的。大家知道 驱动程序可以分成两个部分:硬件控制和业务逻。因为驱动要编译进内核,即使编译成模块也受GPL制约,所以Googl将android系统的驱动程序分成两层,硬...转载 2019-01-11 14:46:28 · 421 阅读 · 0 评论 -
第九期 基于模拟器的Helloworld JNI方法 《手机就是开发板》
https://blog.csdn.net/aggresss/article/details/53575075这一期我们来写一个JNI方法,JNI是Java Native Interface的缩写,它提供了若干的API实现了Java和其他语言的通信(主要是C&C++),JNI是Java调用Native机制,是Java语言自己的特性全称为Java Native Interface,类似的...转载 2019-01-11 14:48:09 · 188 阅读 · 0 评论 -
第二十期 在Android中修改GPS定位数据的完整方案《手机就是开发板》
https://blog.csdn.net/aggresss/article/details/54323034 现在很多的应用都是基于位置服务的,而且把位置服务作为重要的参考标准,其实这是很不安全的,位置信息的数据未经过任何加密,而且是从我们的手机中发送出去的,所以是可以修改的。这一期我们来探讨一下如何修改手机中的定位信息。太基础的原理我就不多说了,可以参考前几期文章。 ...转载 2019-01-12 11:00:06 · 35714 阅读 · 16 评论