Android源码学习
来源:互联网 发布:有淘宝开店条件 编辑:程序博客网 时间:2024/06/05 20:53
Android源码学习之旅:
1、在Ubuntu系统上搭建编译Android源码的环境:
<1>下载VMWare虚拟机,在虚拟机上安装Ubuntu系统,在系统上安装显卡等驱动
<2>打开terminal终端,用命令安装git工具和一些依赖包:
执行sudo apt-get install git-core gnupg时出错
E:could not get lock /var/lib/dpkg/lock - open
E:unable to lock the administration directory(/var/lib/dpkg),is another process using it?
分析可能是依赖包没有安装,于是替换成下面的命令:
sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev libc6-dev
执行成功,此时便安装好了git工具和一些依赖包
<3>安装Java环境
sudo add-apt-repository ppa:ferramroberto/java
sudo apt-get update
sudo apt-get install default-jre
sudo apt-get install default-jdk
<4>安装其他的依赖包
sudo apt-get install flex bison gperf libsdl1.2-dev libesd0-dev build-essential zip curl valgrind
<5>下载Android源码
打开https://github.com/aosp-mirror/
别人的百度网盘:百度云链接:http://pan.baidu.com/s/1mgiLn1A 密码:ekw4
2、Android的应用程序层:Home,contacts,phone,browser,calendar
Android的应用程序框架层:
ActivityManager
PackageManager
WindowManager
TelephonyManager
ContentProvider
ResourceManager
ViewSystem
LocationManager
NotificationManager
XmppService
3、访问Ubuntu系统的root目录:
第一次进入root步骤如下:
<.执行 cd/
<.执行 sudo passwd root
<.按照提示输入密码
<.执行 su root
<.执行 cd root
即可进入root目录
第二次进入root步骤如下:
<.执行 su
<.输入密码
即可进入root目录
从root用户切回到user用户直接输入exit命令即可
4、win7与virtualbox中的Ubuntu共享文件:
<.win7右键共享文件
<.Ubuntu点击菜单栏的设备
->安装增强功能
->设备
->共享文件夹
->添加->其它->选择需要共享的文件->选中固定分配->确定
->Terminal终端进入root用户的/home/wanlijun目录
->新建挂载点mkdir android
->挂载共享文件 mount -t vboxsf android4.4_code(共享文件的名称) android(挂载点的路径)
->进入共享文件夹cd android,
->ls查看共享的文件
5、Android源码目录结构:
应用程序层:packages/apps
应用程序框架层:frameworks
android运行时环境:libcore和dalvik
运行库libraries:bionic
硬件抽象层HAL:hardware
Linux内核层:kernel
android兼容性测试套件标准:cts
java虚拟机:dalvik
应用程序开发相关:development(开发者需要的一些例程及工具)
android使用的一些开源模组:external
编译完成后的输出目录:out
x86和arm架构下预编译的一些资源:prebuilt
SDK及模拟器:sdk
底层文件系统库、应用及组件:system
厂商定制代码:vendor
硬件访问服务接口:frameworks/base/core/java/android/os
硬件访问服务实现:frameworks/base/services/java/com/android/server
硬件访问服务的JNI方法实现:frameworks/base/services/jni
6、Android系统分两层来支持硬件设备:
在用户空间实现的硬件抽象层(HAL):封装硬件的实现细节和参数,不必公开代码
在内核空间实现的硬件驱动模块:提供简单的硬件访问通道
7、Android系统支持硬件的开发流程:
在android系统的内核空间中为一个硬件开发驱动程序
在用户空间为该硬件添加一个硬件抽象层模块
在应用程序框架层添加一个硬件访问服务(硬件访问服务运行在系统进程System中就可实现开机自启动)
开发一个应用程序来访问该硬件服务
1、在Ubuntu系统上搭建编译Android源码的环境:
<1>下载VMWare虚拟机,在虚拟机上安装Ubuntu系统,在系统上安装显卡等驱动
<2>打开terminal终端,用命令安装git工具和一些依赖包:
执行sudo apt-get install git-core gnupg时出错
E:could not get lock /var/lib/dpkg/lock - open
E:unable to lock the administration directory(/var/lib/dpkg),is another process using it?
分析可能是依赖包没有安装,于是替换成下面的命令:
sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev libc6-dev
执行成功,此时便安装好了git工具和一些依赖包
<3>安装Java环境
sudo add-apt-repository ppa:ferramroberto/java
sudo apt-get update
sudo apt-get install default-jre
sudo apt-get install default-jdk
<4>安装其他的依赖包
sudo apt-get install flex bison gperf libsdl1.2-dev libesd0-dev build-essential zip curl valgrind
<5>下载Android源码
打开https://github.com/aosp-mirror/
别人的百度网盘:百度云链接:http://pan.baidu.com/s/1mgiLn1A 密码:ekw4
2、Android的应用程序层:Home,contacts,phone,browser,calendar
Android的应用程序框架层:
ActivityManager
PackageManager
WindowManager
TelephonyManager
ContentProvider
ResourceManager
ViewSystem
LocationManager
NotificationManager
XmppService
3、访问Ubuntu系统的root目录:
第一次进入root步骤如下:
<.执行 cd/
<.执行 sudo passwd root
<.按照提示输入密码
<.执行 su root
<.执行 cd root
即可进入root目录
第二次进入root步骤如下:
<.执行 su
<.输入密码
即可进入root目录
从root用户切回到user用户直接输入exit命令即可
4、win7与virtualbox中的Ubuntu共享文件:
<.win7右键共享文件
<.Ubuntu点击菜单栏的设备
->安装增强功能
->设备
->共享文件夹
->添加->其它->选择需要共享的文件->选中固定分配->确定
->Terminal终端进入root用户的/home/wanlijun目录
->新建挂载点mkdir android
->挂载共享文件 mount -t vboxsf android4.4_code(共享文件的名称) android(挂载点的路径)
->进入共享文件夹cd android,
->ls查看共享的文件
5、Android源码目录结构:
应用程序层:packages/apps
应用程序框架层:frameworks
android运行时环境:libcore和dalvik
运行库libraries:bionic
硬件抽象层HAL:hardware
Linux内核层:kernel
android兼容性测试套件标准:cts
java虚拟机:dalvik
应用程序开发相关:development(开发者需要的一些例程及工具)
android使用的一些开源模组:external
编译完成后的输出目录:out
x86和arm架构下预编译的一些资源:prebuilt
SDK及模拟器:sdk
底层文件系统库、应用及组件:system
厂商定制代码:vendor
硬件访问服务接口:frameworks/base/core/java/android/os
硬件访问服务实现:frameworks/base/services/java/com/android/server
硬件访问服务的JNI方法实现:frameworks/base/services/jni
6、Android系统分两层来支持硬件设备:
在用户空间实现的硬件抽象层(HAL):封装硬件的实现细节和参数,不必公开代码
在内核空间实现的硬件驱动模块:提供简单的硬件访问通道
7、Android系统支持硬件的开发流程:
在android系统的内核空间中为一个硬件开发驱动程序
在用户空间为该硬件添加一个硬件抽象层模块
在应用程序框架层添加一个硬件访问服务(硬件访问服务运行在系统进程System中就可实现开机自启动)
开发一个应用程序来访问该硬件服务
阅读全文
0 0
- android 源码基础学习
- android例子源码学习
- Android源码项目学习
- android carema 源码学习
- android music源码学习
- android music源码学习
- android例子源码学习
- Android开发--源码学习
- Android ListView源码学习
- Android源码学习笔记
- android music源码学习
- Android-AsyncTask源码学习
- android 学习源码下载
- Android Intent 源码学习
- android Music 源码学习
- android源码学习规划
- Android源码学习(一)
- Android系统源码学习
- React Native绑定微信分享/登录/支付(演示+实现步骤+注意事项)
- JS逻辑
- linux上scim,fcitx在qt,wine或者openoffice之类gtk程序中,中英文环境输入
- Python 安装scikit-learn
- spring学习笔记
- Android源码学习
- javascript 中关于call方法的详解。
- 四种常见的 POST 提交数据方式
- Struts2 后台数据传输到页面(域对象传值,值栈(狭义值栈和广义值栈))
- Quartz报错:java.lang.ClassNotFoundException: org.quartz.jobs.FileScanListener
- 安卓notifyDataSetChanged无效 解决方法
- 人性都是懒惰的
- 百度编辑器ueditor,服务器端config.json配置,上传文件图片视频的保存路径等
- pitch yaw roll是什么