
Android平台移植
文章平均质量分 88
专注于Android新平台的移植与优化,形成专业、原创、最新的技术技术文章阵营。
mr_raptor
北京同远天下创始人,专注于企业服务,企业系统解决方案,物联网,智慧社区,产品有众狐客服系统,众狐邮箱验证系统,著有《深入浅出嵌入式底层软件开发》北航出版社
展开
-
深入浅出 - Android系统移植与平台开发(十四) - Sensor HAL框架分析之四
Sensor本地封装类SensorDeviceSensorDevice是在本地代码中SensorService对Sensor设备的抽象类型封装,它封装了传感器硬件的硬件操作,该类继承了Singleton类,通过getInstance方法获得单例模式设备操作对象:@frameworks/base/services/sensorservice/SensorDevice.hclas...原创 2012-11-08 00:03:29 · 13562 阅读 · 11 评论 -
深入浅出 - Android系统移植与平台开发(十三) - Sensor HAL框架分析之三
让我们来看看SensorManager的代码SensorManager框架层代码@frameworks/base/core/java/android/hardware/SensorManager.javapublic SensorManager(Looper mainLooper) { mMainLooper = mainLooper; // 上面说了...原创 2012-10-30 16:12:44 · 16124 阅读 · 8 评论 -
深入浅出 - Android系统移植与平台开发(十二) - Sensor HAL框架分析之二
1.1 Sensor应用程序框架这部分对于上层写应用的朋友来比较熟悉,我们通过一个简单的应用来分析框架层和底层的实现。通常编写一个传感器的应用程序有以下步骤:l 通过调用Context.getSystemService(SENSOR_SERVICE)获得传感器服务,实现返回的是封装了SensorService的SensorManager对象l 调用SensorManager...原创 2012-10-19 16:41:58 · 12287 阅读 · 0 评论 -
深入浅出 - Android系统移植与平台开发(十一) - Sensor HAL框架分析之一
1. Sensor的概念Sensor即传感器,在当前智能手机上大量存在:G-Sensor、LightsSensor、ProximitySensor、TemperatureSensor等,其作为Android系统的一个输入设备,对于重视用户体验的移动设备来说是必不可少的。Sensor虽然是一个输入设备,但是它又不同于触摸屏,键盘,按键等这些常规的输入设备,因为Sensor的数据输入从传...原创 2012-10-19 16:37:53 · 25388 阅读 · 27 评论 -
深入浅出 - Android系统移植与平台开发(十) - led HAL简单设计案例分析
通过前两节HAL框架分析和JNI概述,我们对Android提供的Stub HAL有了比较详细的了解了,下面我们来看下led的实例,写驱动点亮led灯,就如同写程序,学语言打印HelloWorld一样,如果说打印HelloWorld是一门新语言使用的第一声吆喝,那么点亮led灯就是我们学习HAL的一座灯塔,指挥我们在后面的复杂的HAL代码里准确找到方向。 LedHAL实例架构上图描述了我们Led实例原创 2012-10-17 17:35:37 · 19617 阅读 · 19 评论 -
深入浅出 - Android系统移植与平台开发(九)- JNI介绍
JNI是在学习Android HAL时必须要面临一个知识点,如果你不了解它的机制,不了解它的使用方式,你会被本地代码绕的晕头转向,JNI作为一个中间语言的翻译官在运行Java代码的Android中有着重要的意义,这儿的内容比较多,也是最基本的,如果想彻底了解JNI的机制,请查看:http://docs.oracle.com/javase/1.5.0/docs/guide/jni/spec/desi原创 2012-10-17 13:44:43 · 18118 阅读 · 7 评论 -
深入浅出 - Android系统移植与平台开发(八)- HAL Stub框架分析
1. HAL Stub框架分析HAL stub的框架比较简单,三个结构体、两个常量、一个函数,简称321架构,它的定义在:@hardware/libhardware/include/hardware/hardware.h@hardware/libhardware/hardware.c/* 每一个硬件都通过hw_module_t来描述,我们称之为一个硬件对象。你可以去“继承”这个hw_原创 2012-10-15 20:18:27 · 25839 阅读 · 20 评论 -
深入浅出 - Android系统移植与平台开发(七)- 初识HAL
1. HAL的module与stubHAL(Hardware AbstractLayer)硬件抽象层是Google开发的Android系统里上层应用对底层硬件操作屏蔽一个软件层次,说白了,就是上层的应用不用关心底层硬件具体如何工作的,只要向上层提供一个统一的接口即可,这种设计思想广泛的存在于当前的软件架构设计里。严格来讲,Android系统里完全可以没有HAL硬件抽象层,上层应用层可以通原创 2012-10-14 13:35:06 · 28994 阅读 · 7 评论 -
深入浅出 - Android系统移植与平台开发(六)- 为Android启动加速
Android的启动速度一直以来是他的诟病,虽然现在Android设备的硬件速度越来越快,但是随着新版本的出现,其启动速度一直都比较慢,当然,作为程序员,我们是可以理解的,智能手机本身就要启动很多服务来支持应用的功能,并且Android系统大部分还是使用的Java语言编写的,必然要运行在Java虚拟机里,这也决定了它运行速度和启动速度都相对较慢。同时,Android系统为了在执行用户应用程序时提高原创 2012-10-14 13:20:26 · 20811 阅读 · 6 评论 -
Android ril移植-6410开发板SIM300模块
++++++++++++++++++++++++++++++++++++++++++本文系本站原创,欢迎转载! 转载请注明出处:http://blog.youkuaiyun.com/mr_raptor/article/details/6598891++++++++++++++++++++++++++++++++++++++++++ 环境介绍: 1. ubuntu 10.10,作为原创 2011-07-11 23:36:27 · 6199 阅读 · 6 评论 -
Android中JNI高级应用 - 本地C代码中创建Java对象及本地JNI对象的保存
++++++++++++++++++++++++++++++++++++++++++本文系本站原创,欢迎转载! 转载请注明出处:http://blog.youkuaiyun.com/mr_raptor/article/details/7401178++++++++++++++++++++++++++++++++++++++++++本地C代码中创建Java对象创建Java域的原创 2012-03-27 23:53:00 · 9902 阅读 · 1 评论 -
编译Android常用命令
1. 多核快速编译:make -j4 4表示四核编译2. 选择设备:lunch 3. 子系统编译:make sdk/framework/snod/... snod 只编译system.img4. 编译当前目录下的源码:mm5. 编译指定目录下的源码:mmm6. 指定logcat输出的级别:adb logcat -s *:s /原创 2012-04-10 09:00:23 · 5075 阅读 · 3 评论 -
移植原生Android2.3之 - Camera Preview过程
1. 建立连接前面的Camera sub system的基础知识这里不在赘述,调用流程: CameraService->connect> 判断cameraId是否为有效cameraId,里面的mNumberOfCameras是从HAL里得到的,在CameraService创建时读取HAL的静态结构数据CameraInfo,通常也是实现在对应的CameraHardware里。原创 2012-04-10 14:01:57 · 3306 阅读 · 0 评论 -
Ubuntu10.04下Android开发环境搭建
转载地址:http://www.cnblogs.com/nju-dwk/archive/2012/03/01/2376136.html转载原因:里面的下载地址不错,用的时候直接下。1. 卸载OpenJDK 新立得软件中心中彻底删除包含OpenJDK的包2. 安装Sun JDK1.6[1] 从http://www.oracle.com/technetwork/ja转载 2012-04-10 20:05:02 · 3526 阅读 · 0 评论 -
Android编译系统详解(一)
++++++++++++++++++++++++++++++++++++++++++本文系本站原创,欢迎转载! 转载请注明出处:http://blog.youkuaiyun.com/mr_raptor/article/details/7539978++++++++++++++++++++++++++++++++++++++++++ Android编译系统详解(一):http:原创 2012-05-07 01:24:48 · 43153 阅读 · 13 评论 -
Android编译系统详解(二)
++++++++++++++++++++++++++++++++++++++++++本文系本站原创,欢迎转载! 转载请注明出处:http://blog.youkuaiyun.com/mr_raptor/article/details/7540066++++++++++++++++++++++++++++++++++++++++++ Android编译系统详解(一):http:原创 2012-05-08 11:15:58 · 29591 阅读 · 13 评论 -
Android编译系统详解(三)
++++++++++++++++++++++++++++++++++++++++++本文系本站原创,欢迎转载! 转载请注明出处:http://blog.youkuaiyun.com/mr_raptor/article/details/7540730++++++++++++++++++++++++++++++++++++++++++ Android编译系统详解(一):http://blog.csdn.n原创 2012-05-09 12:43:05 · 22228 阅读 · 13 评论 -
定制你自己的Andoird桌面Launcher
如果你要定制一个Android系统,你想用你自己的Launcher(Home)作主界面来替换Android自己的Home,而且不希望用户安装的Launcher来替换掉你的Launcher.我们可以通过修改Framework来实现这样的功能。这里以Android2.1的源代码为例来实际说明。1)首先了解一下Android的启动过程。 Android系统的启动先从Zygote开始启动转载 2012-05-20 23:29:02 · 5537 阅读 · 1 评论 -
Android编译错误:You have tried to change the API from what has been previously approved.
android SDK中有些JAVA类是开放的,有些是不开放的,API同样如此。这里所谓开放的类或API,只是javadoc的范畴,并不是java中public和private,也就是说,对于源码的编译无所谓,只是对javadoc的生成有影响关于类的开放和隐藏,但是对android的上层应用有影响,因为非开放的类或API,android上层应用无法直接访问。 类或API是否开放,是通过d转载 2012-05-23 20:31:26 · 17016 阅读 · 3 评论 -
移植Andorid4.0.4 - 步骤及问题汇总
+ 华清远见 - MichaelTang--------------------------------------------------------------------------------------------------------------------------------开发板: FS_S5PC100 CPU: S5PC100,800Mhz,A8原创 2012-07-08 17:16:14 · 4610 阅读 · 1 评论 -
linaro Android4.0.4 for FS100 - dm9000移植
1. 平台代码修改 vim arch/arm/mach-s5pc100/mach-smdkc100.c2. 添加需要的头文件 #if defined (CONFIG_DM9000) #include #include #endif3. 平台设备添加// CMD为低,读写地址寄存器, CMD为高,读写数据寄存器原创 2012-07-08 17:47:19 · 3570 阅读 · 3 评论 -
编译运行Android模拟器
source buile/envsetup.shlunch sdk-engmake sdk -j2 编译完之后,sdk安装在了下面的目录里ANDROIID_DIR/out/host/linux-x86/sdk在这个目录下有一个压缩包,里面就是我们从eclipse里下载的sdk的包。如果你做过app开发都会知道,我们只有下载了不同版本的sdk之后才能创建不同版本的模拟器,原创 2012-07-09 21:26:26 · 11236 阅读 · 2 评论 -
SurfaceFlinger启动过程分析
转载时请注明出处和作者文章出处:http://danielwood.cublog.cn作者:Daniel Wood------------------------------------------------------------ 以下将讲讲surfaceflinger的启动过程,可以结合启动过程图来了解。当然最关键是代码(Google Android 2.2),转载 2012-07-09 22:58:24 · 3372 阅读 · 0 评论 -
android surfaceflinger研究----显示系统
转载:http://www.cnblogs.com/armlinux/archive/2012/02/29/2396756.html 这周抽空研究了一下SurfaceFlinger,发现真正复杂的并不是SurfaceFlinger本身,而是android的display显示系统,网上关于这部分的介绍有不少,本不打算写的,但是发现还是记录一下研究代码的过程比较好,一是能够帮助自己理转载 2012-07-09 23:04:14 · 3638 阅读 · 0 评论 -
Build Android4.0.3错误
build/core/main.mk:670: *** Module 'AlarmProvider' in PRODUCT_PACKAGES has nothing to install!. Stop../build/target/product/large_emu_hw.mk:25: AlarmProvider ./build/target/product/generic_n转载 2012-07-12 23:34:06 · 8070 阅读 · 1 评论 -
Android init进程启动
一、Android Init.c执行流程Android中的内核启动后,kernel会启动第一个用户级别的进程:init,它是一个由内核启动的用户级进程。内核自行启动(已经被载入内存,开始运行,并已初始化所有的设备驱动程序和数据结构等)之后,就通过启动一个用户级程序init的方式,完成引导进程。init始终是第一个进程。PS:可以通过:ps aux | grep init命令来查看其Pid为1。in原创 2012-07-12 23:30:38 · 14892 阅读 · 5 评论 -
Android本地服务的启动 - zygote服务及Dalvik环境启动
通过上一节Android init进程启动的分析可知,init进程在启动过程中,解析并处理了init.rc和init.hardware.rc两个初始化脚本文件,在两个初始化脚本文件里,定义了一系列的service section,这些service在boot触发器下,通过class_start default依次启动,其过程总结如下: 1. init 解析init.rc 2原创 2012-08-02 13:16:11 · 7002 阅读 · 1 评论 -
深入浅出 - Android系统移植与平台开发(五)- 定制手机模拟器ROM
一、 修改化定制Android4.0系统 Android系统启动时,先加载Linux内核,在Linux的framebuffer驱动里可以定制开机界面,Linux内核启动成功后,挂载根文件系统,启动Android系统,这个时候设备屏幕上开始出现滚动的Android动画,等全部的Android服务启动完毕之后,开始启动Android的HOME界面,也就是桌面。而在这个过程中,我们可以将开机界面和And原创 2012-09-22 10:32:26 · 18366 阅读 · 3 评论 -
深入浅出 - Android系统移植与平台开发(四)- Android启动流程
一、Android init进程启动还是从Linux的启动开始吧。Linux被bootloader加载到了内存之后,开始运行,在初始化完Linux运行环境之后,挂载ramdisk.img根文件系统映像,运行里面的init程序,这也是Linux的第一个用户程序,其pid为1。下面的文章是作者关于init进程启动的描述。http://blog.youkuaiyun.com/mr_raptor/article/de原创 2012-09-22 10:07:25 · 15611 阅读 · 2 评论 -
深入浅出 - Android系统移植与平台开发(三)- 编译并运行Android4.0模拟器
1. 编译Android模拟器在Ubuntu下,我们可以在源码里编译出自己的模拟器及SDK等编译工具,当然这个和在windows里下载的看起来没有什么区别。编译Android模拟器的步骤和编译Android系统很相似:Ø source build/envsetup.shØ lunch sdk-engØ make sdk在每次执行make的时候,编译系统会自动的验证上次编译项和这次编译项原创 2012-09-08 07:36:46 · 13808 阅读 · 11 评论 -
深入浅出 - Android系统移植与平台开发(二) - 准备Android开发环境
编译Android源码关于android系统的编译,Android的官方网站上也给出了详细的说明。http://source.android.com/source/building.html Ø 初始化编译环境切换到Android源码目录:$ cd WORKING_DIRECTORY执行下面命令,加载编译过程中用到的命令、环境变量:$ source build/envsetup.shØ 选择编原创 2012-09-07 12:20:25 · 32304 阅读 · 8 评论 -
深入浅出 - Android系统移植与平台开发(一)
+-------------------------------------------------++ 本系列为连载,不定期会更新 + +-------------------------------------------------+一、Android4.0系统的下载与编译Android系统的下载与编译,Google的官方网站上已经给出了详细的说明,请参照Android原创 2012-09-05 14:16:31 · 33689 阅读 · 13 评论