
Android
行者常至,为者常成
学习ing
展开
-
Android从驱动到应用(4)_硬件抽象层的加载及权限问题
前面已经编写了硬件抽象层的接口,并已经在out/target/product/generic/system/lib/hw目录下看到demo.default.so文件那这个文件是如何进行加载的呢,本文参考罗升阳的《Android系统源代码情景分析 [罗升阳著]》平台:MTK,安卓8.0Android系统中的硬件抽象层模块是由系统统一加载的,当需要加载这些模块时,只要指定它们的id值就可以了,加...原创 2019-08-08 15:24:06 · 357 阅读 · 0 评论 -
Android从驱动到应用(1)_开发第一个android应用程序
参考老罗的Android系统源代码情景分析,准备系统学习下安卓,好记性不如烂笔头,这里针对学习过程做个总结。由于涉及知识面比较广,同时会同步整理下linux内核相关的知识点,参考的内核书籍和网站列举如下:老罗的博客Linux内核源代码情景分析.(pdf)Linux Device Drivers.(纸质书)安卓应用官方文档Google Android SDK开发范例大全.(pdf)开始...原创 2019-08-06 20:36:48 · 396 阅读 · 0 评论 -
Android从驱动到应用(5)_添加JNI层
前面已经添加好了HAL层,由于HAL层由c++开发的,而应用程序框架层中的硬件访问服务是使用java语言开发的,所以硬件访问服务必须通过java本地接口(JNI)来调用硬件抽象层模块的接口。使java代码可以调用c代码frameworks/base/services/core/jnicom_android_server_DemoService:#define LOG_TAG "DemoS...原创 2019-08-09 15:26:16 · 331 阅读 · 0 评论 -
Android从驱动到应用(6)_添加硬件访问服务
Android的硬件访问服务运行在system中,而使用硬件访问服务的应用程序运行在另外的进程中,所以应用程序要通过进程间通信机制(Binder进程间通信机制)来访问这些硬件访问服务;Binder进程间通信机制要求提供服务的一方必须实现一个具有跨进程访问能力的服务接口。AIDL:Android系统通过接口描述语言(AIDL)来定义具有具有跨进程访问能力的服务接口,后缀名为aidl,编译时会将它转...原创 2019-08-09 16:35:32 · 372 阅读 · 0 评论 -
Android从驱动到应用(2)_添加驱动
上节简单介绍了如何实现一个简单的应用程序,为了更好的理解底层到上层的实现机制,先从第一个驱动开始。平台: Android o go + kernel 3.18 + MTKandroid/kernel-3.18/drivers/----demo----demo.c----demo.h----Kconfig----Makefiledemo.c实现一个典型的字符设备驱动,及proc节点,...原创 2019-08-07 15:53:57 · 513 阅读 · 0 评论 -
Android从驱动到应用(3)_添加HAl层
前面我们已经添加了驱动层的代码,接下来添加下HAL层的代码。HAl层目录结构:hardware----libhardware/include/hardware/demo.h----libhardware/modules/demo|—demo.cpp|—Android.mkdemo.h: 按照android对HAL层规范的要求,分别定义模块ID、模块结构体以及硬件接口结构体.#ifn...原创 2019-08-07 21:10:54 · 704 阅读 · 0 评论 -
Android从驱动到应用(7)_添加应用程序来使用硬件访问服务
前面已经搭建好硬件访问服务,下面来添加一个应用程序来使用下。参考罗升阳的《Android系统源代码情景分析 [罗升阳著]》目录结构如下:包含一个源代码目录src、一个资源目录res、一个配置文件AndroidManifest.xml、和一个编译脚本Android.mk文件,下面看下具体的实现代码。Demo.java:定义了一个Activity组件,他是应用程序的主界面,定义了一个编辑框和...原创 2019-08-12 12:42:51 · 342 阅读 · 0 评论