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深度探索总结的更多相关文章

  1. Android深度探索(卷1)HAL与驱动开发 虚拟环境的安装

    前言: 最近在看<Android深度探索(卷1)HAL与驱动开发>安装随书带的虚拟环境浪费了很多时间,说是虚拟环境的安装倒不如说是虚拟环境的导入,其实没什么技术含量,也没有什么复杂的,只是 ...

  2. 《Android深度探索》(卷1)HAL与驱动开发读后感:

    第一章:安卓系统移植与驱动开发概述 全书分为4篇,分别从搭建开发环境,Linux驱动和Android HAL的基础知识,开发Linux驱动的高级技术和分析典型的Linux驱动源代码4个方面介绍Andr ...

  3. Android深度探索(卷1)HAL与驱动开发

    第一章 介绍Android驱动开发和移植技术 主要对android和linux做了总体的介绍,让我们有了个感性的认识. 一.Android的四层系统架构: a) Linux内核:Android是基于L ...

  4. Android深度探索--HAL与驱动开发----第九章读书笔记

    Google为Android加入HAL主要有如下的目的. 统一硬件的调用接口.由于HAL 有标准的调用接口,所以可以利用HAL屏蔽Linux 驱动复杂.不统一的接口. 解决了GPL版权问题.由于Lin ...

  5. Android深度探索--HAL与驱动开发----第八章读书笔记

    通过蜂鸣器的实现原理,实现一个完整的蜂呜器驱动,可以打开和关闭蜂鸣器. PWM驱动的实现方式不同于LED驱动, PWM 驱动将由多个文件组成.这也是大多数 Linux 驱动的标准实现方式. 刚开始是L ...

  6. Android深度探索--HAL与驱动开发----第五章读书笔记

    第五章主要学习了搭建S3C6410开发板的测试环境.首先要了解到S3C6410是一款低功耗.高性价比的RISC处理器它是基于ARMI1内核,广泛应用于移动电话和通用处理等领域. 开发板从技术上说与我们 ...

  7. Android深度探索--HAL与驱动开发----第四章读书笔记

    1. 下载.编译.测试源代码 创建存放下载文件的目录(repo) 下载repo脚本文件 创建用于存放源代码的目录 开始下载源代码. 2. 源代码目录含义摘要 Abi 应用程序二进制接口 Device ...

  8. Android深度探索--HAL与驱动开发----第二章读书笔记

    1. 底层开发工具包括: JDk6或者以上版本:Eclipse3.4或以上版本:ADT(用于开发Android应用程序),CDT(用于开发AndroidNDK程序):Android SDK:Andro ...

  9. Android深度探索--HAL与驱动开发----第一章读书笔记

    1. Android的系统架构有四层,它的发展目前来说 是比较成熟的,流行于目前的市场.其架构包括四层(linux内核.C/C++代码库.Android SDK API.应用程序). 2. 驱动是直接 ...

随机推荐

  1. pgpool-ii 安装手册 基于Centos7.3

    http://www.bkjia.com/jQuery/1173582.html地址被占用pgpool启动失败 Nov 15 02:33:56 node3 pgpool: 2016-11-15 02: ...

  2. JSPs only permit GET POST or HEAD的解决方案(REST风格)

    问题:原文链接 https://blog.csdn.net/tiberroot/article/details/76615727 看到很多人解决办法使用 @ResponseBody注解 这个意思是按照 ...

  3. 给Eclipse设置android的SDK位置时,出现这个:This Android SDK requires Andr...ate ADT to the latest

    这样的问题很好解决,一个升级ADT到指定版本或以上,另一个简单的办法是调低SDK版本 找到android-sdk-windows\tools\lib下的plugin.prop文件修改其中的版本号,改为 ...

  4. Minor GC ,Full GC 触发条件

    Minor GC ,Full GC 触发条件 Minor GC触发条件:当Eden区满时,触发Minor GC. Full GC触发条件: (1)调用System.gc时,系统建议执行Full GC, ...

  5. 告别CMD.windows终端神器conemu设置

    前言 一种刘姥姥进大观园的感觉,现在是见啥啥新鲜.因为之前不怎么接触到命令操作,平时偶尔用用cmd也没觉得什么不妥.直到现在经常调试脚本,使用git越发感觉不方便.看见同事使用的terminal绚丽夺 ...

  6. Layer:如何调用layer.open打开的的iframe窗口中的JS?

    layer.open({type: 2,content: 'test/iframe.html',success: function(layero, index){ var body = layer.g ...

  7. VMware虚拟机中red hat linux ping不通宿主物理主机原因

    在VMware Workstation中安装了red hat enterprise linux系统,网络使用“桥接”形式,最后出现在Windows下能够Ping通虚拟主机,而虚拟主机Ping不通Win ...

  8. BZOJ 3130: [Sdoi2013]费用流 网络流+二分

    3130: [Sdoi2013]费用流 Time Limit: 10 Sec  Memory Limit: 128 MBSec  Special JudgeSubmit: 1230  Solved: ...

  9. Processing分形之一——Wallpaper

    之前用C语言实现过一些分形,但是代码比较复杂.而对于天生对绘图友好的Processing,及其方便. 在大自然中分形普遍存在,我们用图形模拟,主要是找到一个贴近的函数. 代码 /** * Wallpa ...

  10. KMP算法入门讲解

    字符串匹配问题.假设文本是一个长度为$n$的字符串$T$,模板是一个长度为$m$的字符串$P$,且$m\leq n$.需要求出模板在文本中的所有匹配点$i$,即满足$T[i]=P[0],T[I+1]= ...