本帖最后由 zhaosenyang 于 2017-7-12 13:43 编辑
源码级开发 1.源码级开发(系统开发) 1.1 Android系统分层 1.2三方应用开发与源码级开发的区别 1.3 AOSP官网 2. Ubuntu系统安装与介绍 2.1 安装虚拟机 2.2 Ubuntu系统的安装与介绍 3. 常见Linux命令 3.1目录操作 3.2文件查找 3.3系统操作 4. AOSP源码工作环境 4.1编译环境搭建(Ubuntu14.04) JDK和依赖包下载 安装其他依赖 USB设备权限配置 OUT目录配置(可选) 设置ccache缓存(可选) 4.2源码下载与管理 AOSP源码下载 repo与git的关系 4.3源码预编译 驱动下载(可选) 编译AOSP 运行编译结果 out目录 4.4 AOSP常见的命令,目录介绍 常见AOSP命令 常见AOSP目录 5. Android Build System入门 5.1 什么是makefile 5.2 ABS的工作流程 6.AOSP下进行系统开发 6.1 Android的启动流程简述 6.2修改系统APP代码 如何去编译APK Dalvik与ART的区别 odex是干什么的 为什么在源码环境下编译就产出了odex文件 如何在开发阶段关闭dex2oat 6.3定制framework 6.4进一步修改native层的代码 7.源码级开发的职业发展
1.1 Android系统分层 HAL层:(HardwareAbstract Layer)硬件抽象层。Android系统里封装内核驱动程序的接口层。对上层提供接口,屏蔽底层驱动实现细节. 本来Linux内核可以负责驱动接口定义和驱动实现,但是受限于GNU License(开源感染性),如果厂商选择驱动接口和实现都在内核空间完成,就必须开放自己的驱动源代码。这是不符合厂商利益的(驱动包含核心硬件参数,与其他厂家竞争的法宝)。所以Google将Linux内核中跟底层硬件操作相关的逻辑封装成HAL层接口,厂商基于接口去实现,不直接在内核空间实现驱动。因为Android系统遵循Apache License,不强制开源。
1.2三方应用开发与源码级开发的区别 三方应用开发是基于Android SDK开发。主要技术方向为APP及混合APP开发,数据库,网络协议,应用架构等,服务于商业APP需求。 源码级开发是基于AOSP环境开发,主要技术方向为系统应用开发,Framework开发,底层浏览器内核开发,音视频编解码开发,虚拟机开发,底层驱动开发等。服务于系统定制需求。 1.3 AOSP官网 AOSP官网提供系统开发相关指导,比如源码的环境搭建,下载,编译,维护,更新版本,开放驱动的下载等。
|