Android深度探索总结
Android深度探索前四章总结
通过这几章的学习真实体会到“移植”的概念:为特定设备定制Android的过程,但是移植的过程中开发最多的就是支持各种硬件设备的Linux驱动程序,本章对Android和Linux做了总体介绍。接着介绍了Android的四层架构:Linux内核;C/C++代码库;Android SDK API;应用程序。又引入Android移植,Android移植包括两部分:应用移植,系统移植。而且为硬件平台添加新的模块,必须为此模块添加一个新的驱动程序,或者修改原来的程序。
学习Linux需要做:Linux操作系统Ubuntu,一块开发板,学习GNU C,相关的硬件知识。Linix将存储器和外设分为三部分:字符设备(触摸屏,磁带驱动器,鼠标,键盘),网络设备,块设备(硬盘,软驱)
最后引入Linux驱动,LED灯核心代码中包含了很多系统的函数和结构体,明白了任何一个驱动都需要有一个装载函数和卸载函数,他们分别通过module_init和module_exit宏来指定。这是Linux最基本的一个驱动程序。Linux驱动编程只和Linux内核有关,与用户使用的Linux系统没有关系,可以通过命令来查看系统使用的内核版本,而且只要是内核版本一样驱动就可以通用。
需要Android应用程序以及Android NDK程序来测试Linux驱动,所以所需要的工具都必须配备好。而且对工具的版本也是有一些要求,JDK,Eclipse,ADT,CDT,Android SDK,Android NDK,交叉编译环境,Linux 内核源代码,Android源代码,用于调试开发板串口的工具minicom,当然开发板也是必需的了。真实体会到Git的重要性,因为想要获取开源的源代码,必须要使用Git,而且Linux内核完全是由Git管理的。Git是对源代码进行管理,在使用之前需要先安装Linux下提供三种方式查看文档:
1.直接使用man查看指定命令的帮助文档,查询完成后可以按q直接退出
2.以文本形式查看指定的文档使用命令:
(1)git help <sub-command>
(2)git get git- (加的是需要查询的命令)
3.查看HTML形式的文档采用的命令:
书中通过一个完整的例子整体来演示git的功能庞大,包括如何创建版本库、提交源代码、创建分支、向远程服务器上传源代码、从远处服务器上获取源代码等技术。
讲到Git托管服务器,第一次听这个名词,书中使用Github来托管刚刚建立的.txt文件,使用之前需要在http://github.com/signup/free页面注册一个免费用户,接着通过提示创建开源项目,然后要上传源代码到Github,上传时需要SSH校验,要使用命令ssh-keygen -t rsa -C” ”,双引号里边写的是注册的邮箱号,然后生成一个密钥文件和一个公钥文件,文件存在之后,需要备份,接着有提示,但是Ubuntu成功完成以上操作仍然不能通过测试,需要向代理身份验证添加RSA身份。可以在Github页面看到上传的文件,还可以找到用于上传的URI。总之这是一次源代码之旅,学到了如何下载和编译Android源代码和Linux 内核源代码。而且还介绍了很多指令,对linux内核学习很有帮助,更进一步了解了所学的内容,真的是书读百变其义自现。
http://www.cnblogs.com/xxyue/
Android深度探索总结的更多相关文章
- Android深度探索(卷1)HAL与驱动开发 虚拟环境的安装
前言: 最近在看<Android深度探索(卷1)HAL与驱动开发>安装随书带的虚拟环境浪费了很多时间,说是虚拟环境的安装倒不如说是虚拟环境的导入,其实没什么技术含量,也没有什么复杂的,只是 ...
- 《Android深度探索》(卷1)HAL与驱动开发读后感:
第一章:安卓系统移植与驱动开发概述 全书分为4篇,分别从搭建开发环境,Linux驱动和Android HAL的基础知识,开发Linux驱动的高级技术和分析典型的Linux驱动源代码4个方面介绍Andr ...
- Android深度探索(卷1)HAL与驱动开发
第一章 介绍Android驱动开发和移植技术 主要对android和linux做了总体的介绍,让我们有了个感性的认识. 一.Android的四层系统架构: a) Linux内核:Android是基于L ...
- Android深度探索--HAL与驱动开发----第九章读书笔记
Google为Android加入HAL主要有如下的目的. 统一硬件的调用接口.由于HAL 有标准的调用接口,所以可以利用HAL屏蔽Linux 驱动复杂.不统一的接口. 解决了GPL版权问题.由于Lin ...
- Android深度探索--HAL与驱动开发----第八章读书笔记
通过蜂鸣器的实现原理,实现一个完整的蜂呜器驱动,可以打开和关闭蜂鸣器. PWM驱动的实现方式不同于LED驱动, PWM 驱动将由多个文件组成.这也是大多数 Linux 驱动的标准实现方式. 刚开始是L ...
- Android深度探索--HAL与驱动开发----第五章读书笔记
第五章主要学习了搭建S3C6410开发板的测试环境.首先要了解到S3C6410是一款低功耗.高性价比的RISC处理器它是基于ARMI1内核,广泛应用于移动电话和通用处理等领域. 开发板从技术上说与我们 ...
- Android深度探索--HAL与驱动开发----第四章读书笔记
1. 下载.编译.测试源代码 创建存放下载文件的目录(repo) 下载repo脚本文件 创建用于存放源代码的目录 开始下载源代码. 2. 源代码目录含义摘要 Abi 应用程序二进制接口 Device ...
- Android深度探索--HAL与驱动开发----第二章读书笔记
1. 底层开发工具包括: JDk6或者以上版本:Eclipse3.4或以上版本:ADT(用于开发Android应用程序),CDT(用于开发AndroidNDK程序):Android SDK:Andro ...
- Android深度探索--HAL与驱动开发----第一章读书笔记
1. Android的系统架构有四层,它的发展目前来说 是比较成熟的,流行于目前的市场.其架构包括四层(linux内核.C/C++代码库.Android SDK API.应用程序). 2. 驱动是直接 ...
随机推荐
- vue、React Nactive的区别(转载)
Vue与React的对比 Vue.js与React.js从某些反面来说很相似,通过两个框架的学习,有时候对一些用法会有一点思考,为加深学习的思索,特翻阅了两个文档,从以下各方面进行了对比,加深了对这两 ...
- Luogu P1438无聊的序列【线段树/差分】By cellur925
题目传送门 题目大意:维护一个序列,维护区间加等差数列,单点查询的操作. 首先我们肯定是要用线段树来维护了,按照一般的思维局限,我选择了维护序列中的值,但是区间修改的时候由于公差的存在,所以区间修改有 ...
- git回退版本,已经commit过的文件丢了
参考:https://blog.csdn.net/qq_33877149/article/details/79705611 可以用 git reset --hard fa8694b 回退到以上相应的位 ...
- git clone 指定新建本地库位置
- shell学习(8)- ulimit调优系统参数
ulimit:显示(或设置)用户可以使用的资源的限制(limit),这限制分为软限制(当前限制)和硬限制(上限),其中硬限制是软限制的上限值,应用程序在运行过程中使用的系统资源不超过相应的软限制,任何 ...
- [Android]进程间通信的方法
一.管道 管道是进程间通信中最古老的方式,它包括 无名管道 和 有名管道两种,前者用于父进程和子进程间的通信,后者用于运行于同一台机器上的任意两个进程间的通信. 无名管道由pipe()函数创建. #i ...
- [Android]Android开发艺术探索第13章笔记
13.1 使用CrashHandler来获取应用的Crash信息 (1)应用发生Crash在所难免,但是如何采集crash信息以供后续开发处理这类问题呢? 利用Thread类的setDefaultUn ...
- Luogu P2522 [HAOI2011]Problem b 莫比乌斯反演
设$f(d)=\sum_{i=1}^N\sum_{j=1}^M[gcd(i,j)==d],\\F(n)=\sum_{n|d}f(d)=\lfloor \frac{N}{n} \rfloor \lflo ...
- 如何在windows下是用mysqldumpslow命令
1. 再一次点击mysql安装文件(默认是没安装mysqldumpslow这些脚本的),如图: 点击next如下图 点击Developer Components 旁边的选择this feature , ...
- PHP函数生成随机数
通常情况下,当我们要生成一个随机字符串时,总是先创建一个字符池,然后用一个循环和mt_rand()或rand()生成php随机数,从字符池中随机选取字符,最后拼凑出需要的长度,代码如下: <?p ...