android深度探索1-4章心得体会

第一章

Android系统本身是一个庞大的系统,移植并不需要精通Android的每一个部分,需要考虑的是Android系统的硬件抽象层(HAL)和Linux中的相关设备驱动程序。

Android系统的移植工作的目的是为了在特定的硬件上运行Android系统。在移植的过程中,把握关键要点,减少工作量是一个重要的方面。从工作的角度,通常的方法为,首先要熟悉硬件抽象层的接口,其次要集成和复用已有的驱动程序,主要的工作量在硬件抽象层的实现中。为了更好地理解和调试系统,也应该适当地了解上层对硬件抽象层的调用情况。

移植方面主要的工作有两个部分:

Linux驱动

Android系统硬件抽象层

Linux中的驱动工作在内核空间,Android系统硬件抽象层工作在用户空间,有了这两个部分的结合,就可以让庞大的Android系统运行在特定的硬件平台上。

在具有了特定的硬件系统之后,通常在Linux中需要实现其驱动程序,这些驱动程序通常是Linux的标准驱动程序,在Android平台和其他Linux平台基本上是相同的。主要的实现方面是Android系统中的硬件抽象层(Hardware Abstract Layer),硬件抽象层对下调用Linux中的驱动程序,对上提供接口,以供Android系统的其他部分(通常为Android本地框架层)调用。

第二章

分为五个步骤来完成Android开发环境的部署:

1、安装JDK:

JDK的全称是Java SE Development Kit,也就是Java 开发工具箱。SE表示标准版。JDK是Java的核心,包含了Java的运行环境(Java Runtime Environment),一堆Java工具和给开发者开发应用程序时调用的Java类库。

JDK包含的基本工具主要有:

javac:Java编译器,将源代码转成字节码。

jar:打包工具,将相关的类文件打包成一个文件。

javadoc:文档生成器,从源码注释中提取文档。

jdb:debugger,调试查错工具。

java:运行编译后的java程序。

2、配置Windows上JDK的变量环境 :

当要求系统启动一个应用程序时,系统会先在当前目录下查找,如果没有则在系统变量Path指定的路径去查找。前面我们说了JDK包含了一堆开发工具,这些开发工具都在JDK的安装目录下,为了方便使用这些开发工具,我们有必要把JDK的安装目录设置了系统变量。这就是为什么在Windows安装了JDK后需要设置JDK的bin目录为系统环境变量的原因。

3、下载安装Eclipse :

Eclipse为Java应用程序及Android开发的IDE(集成开发环境)。Eclipse不需要安装,下载后把解压包解压后,剪切eclipse文件夹到你想安装的地方,打开时设置你的工作目录即可。

4、下载安装Android SDK :

配置了JDK变量环境,安装好了Eclipse,这个时候如果只是开发普通的JAVA应用程序,那么Java的开发环境已经准备好了。我们要通过Eclipse来开发Android应用程序,那么我们需要下载Android SDK(Software Development Kit)和在Eclipse安装ADT插件,这个插件能让Eclipse和Android SDK关联起来。

5、为Eclipse安装ADT插件:

为了使得Android应用的创建,运行和调试更加方便快捷,Android的开发团队专门针对Eclipse IDE定制了一个插件:Android Development Tools(ADT)。

第三章

Git是目前世界上最先进的分布式版本控制系统。

版本库又名仓库,英文名repository,可以简单的理解一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改,删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻还可以将文件”还原”。

工作区:就是你在电脑上看到的目录,比如目录下testgit里的文件(.git隐藏目录版本库除外)。或者以后需要再新建的目录文件等等都属于工作区范畴。

版本库:工作区有一个隐藏目录.git,这个不属于工作区,这是版本库。其中版本库里面存了很多东西,其中最重要的就是stage(暂存区),还有Git为我们自动创建了第一个分支master,以及指向master的一个指针HEAD。

使用Git提交文件到版本库有两步:

第一步:是使用 git add 把文件添加进去,实际上就是把文件添加到暂存区。

第二步:使用git commit提交更改,实际上就是把暂存区的所有内容提交到当前分支上。

创建与合并分支命令如下:

查看分支:git branch

创建分支:git branch name

切换分支:git checkout name

创建+切换分支:git checkout –b name

合并某分支到当前分支:git merge name

删除分支:git branch –d name

第四章

Ubuntu 环境下载 Android 代码

Git 和 Repo 的安装

首先确保在当前用户的主目录下创建一个 /bin 目录(如果没有的话),然后把它 (~/bin) 加到 PATH 环境变量中。

安装git

sudo apt-get install git-core curl

这条命令会从互联网的软件仓库中安装 git-core 和 curl

初始化版本库 如果是想把 Android 当前主线上最新版本的所有的 sourcecode 拿下来,我们需要 repo 的帮助。

先建立一个目录,比如 ~/myandroid ,进去以后用 repo init 命令即可。

repo init -u git://android.git.kernel.org/platform/manifest.git

同步版本库 使用 repo sync 命令,把整个 Android 代码树做同步到本地,同样,可以用类似 repo sync project1 project2 … 这样的命令来同步某几个项目 如果是同步 Android 中的单个项目,只要在项目目录下执行简单的 git pull 即可。

source 命令( 从 C Shell 而来) 是bash shell 的内置命令。点命令,就是个点符号,( 从Bourne Shell 而来) 是source 的另一名称。同样的,当前脚本中配置的变量也将作为脚本的环境,source( 或点) 命令通常用于重新执行刚修改的初始化文档,如.bash_profile 和 .profile 等等。

时间: 2024-07-29 22:08:54

android深度探索1-4章心得体会的相关文章

《Android深度探索》第一章心得体会

<Android深度探索>第一章讲的是Android系统移植与驱动开发概述.Android的系统架构分为四层:Linux内核.C/C++代码库.Android SDK API.应用程序.Android移植的主要工作:移植Linux驱动和移植HAL.学习Linux驱动要准备一个自己熟悉的Linux操作系统,用于开发和测试Linux驱动:准备一块开发板:学习GNU C:学习相关的硬件知识:不断地实践.Linux将存储器和外设分为3大类:字符设备.块设备.网络设备. 通过对第一章的学习,我了解到由于

《Android深度探索》第二章心得体会

<Android深度探索>第二章讲的是搭建Android开发环境.搭建Android底层开发环境主要包括Android应用程序开发环境和Android NDK开发环境和交叉编译环境的搭建.搭建Android开发环境的步骤:安装JDK:安装Android SDK:安装Eclipse:安装ADT:配置ADT:建立AVD:下载Android NDK:安装CDT:命令行方式编译Android NDK程序:导入Android NDK的例子:配置Android NDK 的集成开发环境:安装交叉编译环境.

《Android深度探索》第十章心得体会

<Android深度探索>第十章讲的是嵌入式Linux的调试技术.对于复杂的Linux驱动及HAL等程序库,需要使用各种方法对其进行测试.printk函数的用法和printf函数类似,只不过printk函数运行在内核空间,printf函数运行在用户空间.也就是说,像Linux驱动这样的Linux内核程序只能使用printk函数输出调试信息.在Linux文件系统中,/proc经常用来作为内核空间和用户空间进行数据交互的工具./proc文件系统的行为方式和设备文件系统(/dev)类似./proc是

《Android》深度探索第七章心得体会

第七章简述了另外一个驱动程序:LED灯的控制 1.创建LED驱动的设备文件: 第1步:使用cdev_init函数初始化cdev: 第2步:指定设备号,分为两种指定方法 第3步:使用cdev_add函数将字符设备添加到内核中的字符设备数组中: 第4步:使用class_create宏创建struct class: 第5步:使用device_create函数创建设备文件. 2.卸载LED驱动的设备文件 关键代码: void device_destory(sruct class *class,dev_t

Android深度探索第四章心得

本章主要介绍使用Git下载两套源代码.一套是Android 源代码,另一套是Linux 内核源代码.主要介绍如何下载和编译Android源代码和Linux内核源代码. Android源代码包含较多东西,如内嵌在Android系统内置应用程序的源代码,Android SDK带的各种工具的源代码以及HAL源代码. 1.配置Android源代码下载环境,在Linux终端执行一系列命令: 第一步:创建一个用于存放下载脚本文件(repo)的目录(可将该脚本文件放置到任何目录中,在这里使用~/bin) #

Android深度探索第三章心得

本章主要介绍GIT的学习,以及介绍GIT用于获取诸多开源项目的源代码. 1.安装Git命令: #apt-get  install git # apt-get install git-doc git-svn git-email git-gui gitk 2.查看Git文档: # man git-checkout 3.源代码的提交与获取 1.创建版本库:git init   GIT的版本库分为本地版本库与远程版本库.在建立开源项目之初,需要使用git init 在本地建立一个空的版本库.其命令为:

Android深度探索第五章心得

一.S3C6410开发环境配置的过程如下: 1.检测当前系统是否支持USB转串口 #lsmod | grep usbserial 2.安装minicom #apt-get install minicom 3.配置minicom #minicom –s 4.测试minicom 二.烧写Android系统 (1)在Android烧写之前,务必启动EBOOT擦除NandFlash,使用EBOOT擦除步骤如下: 1.准备工作 用串口线或USB转串口连接开发板和PC,并启动minicom 2.进入Eboo

Android深度探索第六章心得

编写Linux驱动程序的步骤: 第1步:建立Linux驱动骨架(装载和卸载Linux驱动) 任何类型的程序都有一个基本的结构,例如,C语言需要有一个入口函数main.Linux驱动程序也不例外.Linux内核在使用驱动时首先需要装载驱 动. 在装载过程中需要进行一些初始化工作,例如,建立设备文件,分配内存地址空间等.当Linux系统退出时需要卸载Linux驱动,在卸载的过程中需要释放 由Linux驱动占用的资源,例如,删除设备文件.释放内存地址空间等.在Linux驱动程序中需要提供两个函数来分别

Android深度探索第七章心得

从上到下,一个软件系统可以分为:应用程序.库.操作系统(内核).驱动程序.开发人员可以专注于自己熟悉的部分,对于相邻层,只需要了解它的接口,无需关注它的实现细节.以点亮LED为例,这4层软件的协作关系如下: 1.应用程序使用库提供的open函数打开代表LED的设备文件. 2.库数据open函数传入的参数执行“swi”指令,这条指令会引起CPU异常,进入内核. 3.内核的异常处理函数根据这些参数找到相应的驱动程序,返回一个文件句柄给库,进而返回给应用程序. 4.应用程序得到文件句柄后,使用库提供的

Android深度探索第四章总结

Android深度探索第四章主要是源代码的下载和编译.要下载Android源代码首先需要配置Android源代码下载环境(1.创建一个用于存放下载脚本文件的目录:2.下载repo脚本文件:3.创建用于存放Android晕代码的目录:4.初始化:5.开始下载Android源代码).介绍了Android源代码目录结构(/bootable这个目录下存放 android 部分启动相关代码,包括 android 的 recovery模式,一般用于进行 OTA 升级,由 C++ 编写,可以看到用于显示的ui