Android底层到上层的开发流程

article/2025/11/7 6:55:16

安卓系统整体框架图如下:
在这里插入图片描述
简单总结如下:

1、在kernel层编写你的驱动程序:生成设备文件节点跟上一层传输数据,主要调用函数copy_to_user和copy_from_user,注意赋节点权限问题。
2、在HAL层封装对上提供的函数接口:通过节点文件与kernel层传输数据,编译生成动态链接库.so库文件,上一层(JNI层)通过硬件模块ID来加载指定的硬件抽象层模块并打开硬件。
3、framework编写JNI方法:通过Android系统的Application Frameworks层提供的硬件服务HelloService来调用这些JNI方法。
4、framework层编写API接口:在Android系统中,硬件服务一般是运行在一个独立的进程中为各种应用程序提供服务。因此,调用这些硬件服务的应用程序与这些硬件服务之间的通信需要通过代理来进行,即XXXX.aidl接口定义文件。
5、在应用层编写apk程序:为了方便开发,我们可以在IDE环境(Android stadio)下使用Android SDK(即把Android源码编译成一个sdk文件,具体操作可参考网上的资料)来开发Android应用程序。开发完成后,再把程序源代码移植到Android源代码工程目录中。应用程序其实很简单,但是涉及到android 中隐藏类的使用,我们的HelloService和ServiceManager其实都是隐藏类,你编译不过去的,添加相应的jar包才可以,参考
https://www.cnblogs.com/begin1949/p/4966542.html

首先拷out/target/common/obj/JAVA_LIBRARIES/framework_intermediates/classes.jar到工程下。


http://chatgpt.dhexx.cn/article/fB0SGQNx.shtml

相关文章

【Android】Android底层开发实战

本书分为四个部分:第一部分为预备知识篇,简要介绍嵌入式系统的定义与软硬件开发以及Android开发环境的搭建。第二部分为系统结构篇,主要介绍Android系统的源码结构、内核与相关工具以及环境库。第三部分为驱动设计篇,主要介绍Andr…

我做了几年的Android应用层开发,为什么还要去学习安卓系统知识?

作为一个工作了好几年的Android应用层开发者,我准备在工作之余干一件事情,那就是学习Android系统知识,为什么要做这个决定呢? 其主要原因是想在Android应用层开发进阶 这个说起来并非易事,可能在很多人的认知里&…

一个Android应用层开发如何转型深入Android Framework?

作为一个工作了好几年的Android应用层开发者,准备在工作之余干一件事情,那就是分享一些Android系统知识,为什么决定要做这个呢,理由如下: 帮助更多人转型Android系统开发 不知何时起,单纯的Android应用层…

android底层开发-android基础架构

android architecture 在安卓中,最经典的架构就是分四层,分别是application、framework、libraries、kernel四层,通过这四层将android的整个架构都丰满起来 其架构图如下 android 系统组成 Process FW: android 系统固件&#…

Android Framework 开发揭解密,移动开发者必须掌握的底层原理

作为过来人,发现很多学习者和实践者都在 Android Framework上面临着很多的困扰,比如: 工作场景中遇到难题,往往只能靠盲猜和感觉,用临时性的补救措施去掩盖,看似解决了问题,但下次同样的问题又会…

Android系统底层架构【译】

Android系统底层架构 转载请注明来源:http://blog.csdn.net/lifeshow 设备移植 Android提供了设备移植和支持方面有较大的自由度,可以制定自有的设备规范和驱动。通过硬件抽象层(HAL-Hardware Abstraction Layer),可以…

嵌入式Android底层开发

嵌入式Linux主要有这几部分&#xff1a; Bootloader&#xff1a;主要用于引导Linux内核到内存中&#xff0c;让内核进行自解压并运行 zImage&#xff1a;带自解压的Linux内核 <Board>.dtb&#xff1a;每个型号的主板都有对应的设备树(保存对应的设备型号等信息&#x…

android 底层系统开发,Android底层

概述-Android系统架构 Android系统架构 概述-Application Application Android平台不仅仅是操作系统&#xff0c;同时也包含了许多应用&#xff0c;如桌面&#xff0c;浏览器&#xff0c;视频客户端&#xff0c;摄像头等。用JAVA编写&#xff0c;可以被开发人员开发的其他应用程…

Android 开发之 ---- 底层驱动开发(二)

Android 设备驱动&#xff08;下&#xff09; MTD 驱动 Flash 驱动通常使用 MTD &#xff08;memory technology device )&#xff0c;内存技术设备。 MTD 的字符设备&#xff1a; /dev/mtdX 主设备号 90. MTD 的块设备&#xff1a; /dev/block/mtdblockX 主设备号 13. MTD 驱…

写给Android App开发人员看的Android底层知识(1)

这个系列的文章一共8篇&#xff0c;我酝酿了很多年&#xff0c;参考了很多资源&#xff0c;查看了很多源码&#xff0c;直到今天把它写出来&#xff0c;也是战战兢兢&#xff0c;生怕什么地方写错了&#xff0c;贻笑大方。 &#xff08;一&#xff09;引言 早在我还是Android菜…

读懂底层,才是安卓真正开始的时候

对于android开发&#xff0c;我们大部分工作都是在应用层&#xff0c;但为了体现"技术含量"&#xff0c;以及"知其所以然"&#xff0c;以便在遇到具体问题时不至于束手无策&#xff0c;因此有必要了解底层的工作机制。 比如Android NDK 开发可能在平时的项…

Android 开发之 ---- 底层驱动开发

说到 android 驱动是离不开Linux驱动的。Android内核采用的是Linux2.6内核&#xff08;最近Linux 3.3已经包含了一些Android代码&#xff09;。但Android并没有完全照搬Linux系统内核&#xff0c;除了对Linux进行部分修正&#xff0c;还增加了不少内容。android 驱动主要分两种…

Android 开发之 ---- 底层驱动开发(一)

驱动概述 说到 android 驱动是离不开 Linux 驱动的。Android 内核采用的是 Linux2.6 内核 &#xff08;最近Linux 3.3 已经包含了一些 Android 代码&#xff09;。但 Android 并没有完全照搬 Linux 系统内核&#xff0c;除了对Linux 进行部分修正&#xff0c;还增加了不少内容。…

Android底层开发

学习书籍&#xff1a;Android底层开发实践 使用代码&#xff1a;AOSP源码 带的行表示关键点&#xff1b; 橙色背景的文字表示&#xff1a;整编log分析的关键字 绿色“待补充”文字表示&#xff1a;有待补充内容 -----第三章 Android系统开发环境搭建 3.1 Android上的开…

ELK日志分析系统(二)之ELK搭建部署

文章目录 引言一、Elasticsearch 集群部署&#xff08;在Node1上操作&#xff09;1、准备环境2、部署安装Elasticsearch软件3、配置Elasticsearch主配置文件4、创建数据存放路径并授权5、查看node1节点信息 二、Elasticsearch 集群部署&#xff08;在Node2上操作&#xff09;1、…

ELK日志分析系统之ELK搭建部署

文章目录 配置ELK日志分析系统1.配置elasticsearch环境2.部署elasticsearch软件2.1 安装Elasticsearch软件2.2 加载系统服务2.3 修改elasticsearch主配置文件2.4 创建数据存放文件路径并授权2.5 启动elasticsearch2.6 查看node1节点信息2.7 查看集群状态信息Elasticsearch 集群…

运维必备——ELK日志分析系统

目录 一、ELK日志分析系统概述&#xff08;1&#xff09;传统日志服务器的优点与缺点和为什么要使用ELK日志分析系统&#xff08;2&#xff09;ELK日志分析系统日志的分类&#xff08;3&#xff09;ELK日志分析系统的分类——Elasticsearch&#xff1a;——Logstash&#xff1a…

ELK 日志分析系统

目录 引言一、ELK 日志分析系统简介1. 日志服务器2. ELK 是什么3. Logstash 四种工具4. 日志处理步骤 二、Elasticsearch 的基础核心概念1. 概述2. 关系型数据库与 Elasticsearch 对应的关系3. 核心概念 三、Logstash 介绍1. logStash 的主要组件2. LogStash 主机分类 四、Kiba…

ELk日志分析系统搭建

一、什么是ELK ​ ELK是Elasticsearch Logstash Kibana 这种架构的简写. 二、ELK常见的架构 Elasticsearch Logstash Kibana 这是一种最简单的架构。这种架构&#xff0c;通过logstash收集日志&#xff0c;Elasticsearch分析日志&#xff0c;然后在Kibana(web界面)中展示。…

Linux 基础命令入门 创建文件

Linux 基础命令入门 创建文件 实操 从当前目录下切换到根目录下 su 或者 su root创建yibodong命名的文件夹 创建文件夹并查看列表 mkdir yibodong显示当前路径 pwd在yibodong命名的文件夹下创建一个文件YBD mkdir -p yibodong/YBD创建该文件的软连接 ln -s yibodong/YBD…