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. 驱动是直接 ...
随机推荐
- mysql联合查询(UNION)
SECLET USER_NAME FROM USERS UNION [ALL] SECLET GNAME FROM SCORES 可以把多条查询语句所产生的结果纵向连接为一体 ALL关键字可以显示全部 ...
- MySQL 的视图、触发器、事务、存储过程、函数
MySQL 的视图.触发器.事务.存储过程.函数 阅读目录 一 视图 二 触发器 三 事务 四 存储过程 五 函数 六 流程控制 一 视图 视图是一个虚拟表(非真实存在),其本质是[根据SQL语句 ...
- Django模板语言,过滤器整理
Django模板语言,过滤器整理 1. add {{ value|add:"2" }} 把add后的参数加给value: 处理时,过滤器首先会强制把两个值转换成Int类型. 如果强 ...
- 【NOI2014】起床困难综合症 贪心
从高到低按位贪心,讨论一下初始0或1,分别暴力算出结果是什么 如果一开始0就能得1当然直接ans垒起来 如果1能得1而且当前m够用,那也垒起来,同时m减掉 否则gg 2min的代码 #include ...
- python之字典的相关操作
一.什么是字典 dict 用{}表示,用来存放键值对数据 {key:value} 键:具有唯一性,不能重复,不可变 必须是可哈希的(不可变的数据类型) 字典是无序的,没有索引 值: 没有任何限制 已知 ...
- NET Core 2.0 使用支付宝
ASP.NET Core 2.0 使用支付宝PC网站支付 前言 最近在使用ASP.NET Core来进行开发,刚好有个接入支付宝支付的需求,百度了一下没找到相关的资料,看了官方的SDK以及Demo ...
- airodump-ng 界面参数比较详细的解释
BSSID: AP(access point)的MAC地址,,如果在client section中BSSID显示为"not associated" ,那么意味着该客户端没有和AP连 ...
- SQLServer数据库表字段超长,找到超长字段脚本
平时开发系统时偶尔会遇到数据超长导致往数据库中保存时出错. 使用下边的脚本可以方便的找出超长的字段. 1.通过正式表创建临时表,修改临时表中varchar.nvarchar的长度为max ); ); ...
- spark RPC详解
前段时间看spark,看着迷迷糊糊的.最近终于有点头绪,先梳理了一下spark rpc相关的东西,先记录下来. 1,概述 个人认为,如果把分布式系统(HDFS, HBASE,SPARK等)比作一个人, ...
- c#线程倒计时器源码
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threa ...