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. ORA-01950:表空间“USERS”中无权限

    ORA-01950:表空间“USERS”中无权限 解决方案: A)确认给用户授权了resource角色 B)取消限制 ALTER USER "HCCPMS" QUOTA UNLIM ...

  2. [软件工程基础]Alpha 软件测试报告

    PhyLab Alpha 测试报告 测试中发现的bug Alpha版本限制与问题 由于接手时数据库已经丢失,这一版本主要修复了大部分数据库,使得网站得以运行. 相比接手时网站的状况,有以下改进: 恢复 ...

  3. Codeforces Round #561 (Div. 2) A. Silent Classroom

    链接:https://codeforces.com/contest/1166/problem/A 题意: There are nn students in the first grade of Nlo ...

  4. Netty-flush

    TimerServer: ch.pipeline().addLast(new TimeEncoder()); ch.pipeline().addLast(new TimeServerHandler() ...

  5. hihoCoder 1383 : The Book List 北京网络赛

    http://hihocoder.com/problemset/problem/1383?sid=950389 #1383 : The Book List 时间限制:1000ms 单点时限:1000m ...

  6. Spark Mllib里决策树二元分类使用.areaUnderROC方法计算出以AUC来评估模型的准确率和决策树多元分类使用.precision方法以precision来评估模型的准确率(图文详解)

    不多说,直接上干货! Spark Mllib里决策树二元分类使用.areaUnderROC方法计算出以AUC来评估模型的准确率 具体,见 Hadoop+Spark大数据巨量分析与机器学习整合开发实战的 ...

  7. mysql通过sql语句判断某个字段在一张表中是否存在

    应用场景: 我有一张表,表里面都是用户用来激活游戏的激活码,当用户在前端页面输入激活码时,要查询数据表中是否有这条激活码,如果有就返回"1",没有则返回"0". ...

  8. C#使用GZipStream实现压缩和解压缩

    前言 我们在项目中,有可能会遇到存入到数据库或者传输的数据量比较大,这个时候,就可以考虑在存入数据库或者发送传输之前,将数据压缩下,当从数据库中取出时,再解压还原数据. 正文 废话不多说,我封装了一个 ...

  9. HttpListener Start 拒绝访问

    HttpListener Start 拒绝访问 以管理员权限运行cmd 输入: netsh http add urlacl url=http://127.0.0.1:8080/ user=HuQing

  10. SpriingMVC执行流程结构

    SpringMVC也叫spring web mvc,属于表现层的框架,是Spring框架的一部分. Spring  MVC请求流程图: request-------->DispatcherSer ...