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变量表示交叉编译器的前缀。

  • 相关阅读:
    双 MySQL 启动、停止脚本
    Mysql 备份与恢复
    Mysql Replication 主从同步
    SYN Flood 防范
    HTTP 1.0 & 1.1
    Memcache 内存对象缓存系统
    Redis 非关系型数据库 ( Nosql )
    Keepalived 角色选举
    Keepalived 资源监控
    keepalived
  • 原文地址:https://www.cnblogs.com/875825a/p/5424104.html
Copyright © 2011-2022 走看看