zoukankan      html  css  js  c++  java
  • 总结

    Android系统移植——为了在不同设备上完美运行Android,需要另外开发一些程序,使得Android可以识别相应设备中的硬件,这个为特定设备定制Android的过程被称为“移植”。

    Android系统架构——4层:

    1.Linux内核

    这一层主要包括Linux的驱动程序以及内存管理、进程管理、电源管理等程序。

    2.C/C++代码库

    这一层主要包括使用C/C++编写的代码库(Linux下的.so文件),也包括Dalivk虚拟机的运行时(Runtime)。

    3.Android SDK API

    由于Android SDK API是用Java语言编写的,因此这一层也可称为Java API层。实际上,这一层是用java编写的各种Library

    4.应用程序

    这一层相当于AndroidUI。主要依靠第三层的Android SDK API 来完成各种功能。

    应用移植:将第4层的应用程序移植到某一个特定硬件平台上。一般 不涉及驱动和HAL程序库(位于第2层)的移植。

    Android移植

    系统移植:让Android操作系统在某一个特定硬件平台上运行。移植 CPU架构和Linux驱动。

    Linux将存储器和外设分为3大类:字符设备,块设备,网络设备。

    字符设备与块设备:

    相同点:对用户而言,它们都使用文件系统的操作接口openclosereadwrite等函数进行访问。

    不同点:字符设备指那些必须以串行顺序依次进行访问的设备,如鼠标、键盘等。不经 过系统的快速缓冲。

    块设备可以用任意顺序进行访问,以块为单位进行操作,如硬盘、软驱等,经 过系统的快速缓冲。

    Git作用是对源代码进行管理。

    Linux下可以直接使用man命令查看指定命令的帮助文档 #man git-checkout

    基本用法

    1,创建版本库:git init

    Git版本库分为本地版本库和远程版本库。

    #mkdir -p /demo/helloworld-git

    #cd /demo/helloworld-git

    #git init

    #ls -al(建立空的版本库)

    2,将文件提交到本地版本库:git commit

    /demo/helloworld-git目录下建立helloworld.txt文件

    #cd /demo/helloworld-git

    #echo “helloworld” > helloworld.txt

    将文件加到本地版本库的索引中,并将helloworld.txt文件提交到版本库

    #git add helloworld.txt

    #git commit -m ‘helloworld-master’

    (提交完成后就不怕源代码误删或误改了)

    恢复到最近一次提交的状态:

    #git checkout helloworld.txt

    3,创建本地分支:git branch

    显示分支:# git branch

    建立分支:# git branch new-branch

    4,切换本地分支:git checkout

    切换分支:# git checkout new-branch

    使用git checkout master 和 git checkout new-branch来回切换本地版本库。

    5,在GitHub上创建开源项目

    6,上传源代码到GitHubgit push

    需要在~/.ssh目录中生成一个密钥文件(id_rsa)和一个公钥文件(id_rsa.pub

    # ssh-keygen -t rsa -C ”helloworld@126.com”

    7,从GitHub下载源代码:git clone

    Linux内核完全是使用Git管理的。

    安装交叉编译环境

    X86架构的CPU采用的是复杂指令集计算机(CICS

    Arm架构的CPU使用的是精简指令集计算机(RISC

    编译android源代码

    1,初始化编译环境 #cource build/envsetup.sh

    mm命令必须进入指定工程的目录进行编译,mmm命令可以源代码目录结构中的任何一级目录编译任意指定的工程,只需要指定工程路径即可。

    2,选择目标

    3,编译android源代码

    # make -jn      使用多个CPU内核进行编译,提高编译效率

    配置Linux内核源代码根目录下的Makefile文件

    ARCH ?= arm

    CROSS_COMPILE?= arm-none-linux-gnueabi-

    ARCH变量表示将Linux源代码编译成可在arm架构上运行的Linux内核。

    CROSS_COMPILE变量表示交叉编译器的前缀。

  • 相关阅读:
    hdu 2647 Reward
    hdu 2094 产生冠军
    hdu 3342 Legal or Not
    hdu 1285 确定比赛名次
    hdu 3006 The Number of set
    hdu 1429 胜利大逃亡(续)
    UVA 146 ID Codes
    UVA 131 The Psychic Poker Player
    洛谷 P2491消防 解题报告
    洛谷 P2587 [ZJOI2008]泡泡堂 解题报告
  • 原文地址:https://www.cnblogs.com/875825a/p/5424104.html
Copyright © 2011-2022 走看看