当前位置:首页 » 安卓系统 » android源码镜像

android源码镜像

发布时间: 2022-09-09 09:38:19

1. 如何搭建 Android SDK 镜像源

方法/步骤 1、在网站上下载android-sdk的最新版本, 然后直接解压到磁盘目录下面。 2、完成android-sdk的下载安装工作后, 打开Eclipse软件, 会出现一个需要安装android-sdk的提示。点击安装。 3、然后就会出现类似与下图样的弹窗, 可以选择进行安装,Extras可以不安装。然后在选择右下角安装。 4、然后可以看到正在进行download pageage操作。进行慢慢等待。 5、在下载过程中会遇到一些错误如: 无法连接google下载资源等, 这时候需要调整下配置了如下图:更改https为http下载。 6、上述方法还不行,就需要设置下本地hosts了, 首先搜索google hosts, 然后将google最新的下载路径保存到本地host文件中.然后再进行下载, 然后等待下载结束。 7、所选择的Android api下载完成后, 在ide中可以新建Android的项目路, 然后进行Android开发之旅了。

2. android 使用Vitamio 如何实现视频镜像翻转

vitamio本身没有这个功能的话你就没办法了,它的源码又没开放,没法修改,解码视频流会得到每帧的图像,针对图像可以实现反转,前提是你得自己去解码

3. 求androidx86系统镜像下载地址,或者文件。。

http://www.android-x86.org/download
这是Android
x86
的官方网站
目前最新版的是 android-x86-4.4-RC2

4. 如何从国内镜像获取android源代码

首先按帮助中的步骤下载repo工具:
[plain] view plain print?
curl https://storage-googleapis.lug.ustc.e.cn/git-repo-downloads/repo > ~/bin/repo
此时查看下载下来的repo文件可以发现其中的REPO_URL已经指向中科大镜像的地址,因此应该不需要修改:

[plain] view plain print?
REPO_URL = 'https://gerrit-googlesource.lug.ustc.e.cn/git-repo'
接下来运行如下命令初始化仓库

[plain] view plain print?
repo init -u git://mirrors.ustc.e.cn/aosp/platform/manifest
发现没有反应,很长时间后应该是超时才退出,报错说无法访问https://gerrit-googlesource.lug.ustc.e.cn/git-repo/clone.bundle

把这个地址放到浏览器上尝试发现也是超时无法访问,最后好像还是指到google的官网去了,感觉应该是因为缺了什么东西,没仔细研究。

但我发现中科大镜像的Git-repo实际上是可以正常访问的,因此最后使用如下方法:
1. 使用git clone命令直接从中科大镜像下载repo工具:

[plain] view plain print?
git clone https://gerrit-googlesource.lug.ustc.e.cn/git-repo
git clone成功后可以在git-repo目录下看到repo以及其他相关的脚本

修改PATH环境变量将git-repo目录加入PATH
2. 修改REPO_URL
此时查看git clone下来的repo文件可以发现其中的REPO_URL还是指向google官网的,因此需要修改该文件指向中科大镜像:

[plain] view plain print?
REPO_URL = 'https://gerrit-googlesource.lug.ustc.e.cn/git-repo'
3. 初始化仓库

修改完repo文件后再运行repo init命令初始化仓库就可以成功了:

[plain] view plain print?
repo init -u git://mirrors.ustc.e.cn/aosp/platform/manifest
以后就可以使用repo sync命令同步源代码了,速度很快。
你试试看看

5. 如何建立本地Android源代码镜像

在ubuntu 10.04 x64系统上。

第一步,安装git和repo
apt-get install git-core
curl http://android.git.kernel.org/repo > /bin/repo
chmod a+x /bin/repo

第二步,建立git server

建立一个git server发布目录
mkdir /pub/gittree

安装服务器软件
apt-get install git-daemon-run

查看服务器运行情况
ps -ef|grep git
看到
119 24126 24124 0 09:36 ? 00:00:00 /usr/lib/git-core/git-daemon --verbose --base-path=/var/cache /var/cache/git

修改服务器配置
vi /etc/sv/git-daemon/run
相关内容改成下面这样的
/usr/lib/git-core/git-daemon --verbose --export-all --base-path=/pub/gittree /pub/gittree

重新启动这个服务,注意,它是由sv - control and manage services monitored by runsv(8)操作的。
sv stop git-daemon
sv start git-daemon
再用ps -ef|grep git查看,改动的配置是否生效。

第三步,镜像代码库到本地目录,
mkdir /pub/gittree/android-mirror
cd /pub/gittree/android-mirror
repo init -u git://android.git.kernel.org/platform/manifest.git --mirror
第三步,镜像代码库到本地目录,
mkdir /pub/gittree/android-mirror
cd /pub/gittree/android-mirror
repo init -u git://android.git.kernel.org/platform/manifest.git --mirror
repo sync
要等很长时间,等它下载完成。如果中间有错误发生,下载中断,则要重做repo sync,会续传。

第四步,从本里代码库里取出代码,
另启一个终端窗口,
cp /bin/repo /bin/repo-local
vi /bin/repo-local
将里面的git://.....改成git://127.0.0.1/android-mirror/ 指向本地服务。

mkdir /pub/test
cd /pub/test
repo-local init -u git://127.0.0.1/android-mirror/platform/manifest.git -b froyo 这里以froyo为例下载一个分支版本。注意,这里不用repo。 git url的写法,可能有变,如在ti公司omap代码库里,就不尽相同。

vi .repo/manifests/default.xml
修改其中的fetch="git://127.0.0.1/android-mirror/" 指向本地代码库。

repo-local sync ,这里,不用repo。

mirror下来的代码库,并不一定会全,会出现某个project找不到的情况,要去补充下载。

回到之前的那个mirror的终端窗口,当前目录在 /pub/gittree/android-mirror
vi .repo/manifests/default.xml
照着样子增加一行project,写上需要的名字,保存退出。
repo sync + project name ,project的名字,就是刚在default.xml里看到的。
再回到test目录下,继纽 repo-local sync

发生过,在android-mirror里sync时,报错,指出manifest里有uncommited change,这时,将.repo目录删去,重新repo init...一次,再repo sync,原来下载的代码还在,有更新的会补充下载

6. android 编译的镜像怎么看内容

Android编译系统在初始化的过程中,会通过根目录下的Makefile脚本加载build/core/main.mk脚本,接着build/core/main.mk脚本又会加载build/core/Makefile脚本,而Android系统镜像文件就是由build/core/Makefile脚本负责打包生成的。 在build/core/main.mk文件中,与Android系统镜像文件打包过程相关的内容如下所示: [plain] view plain ...... ifdef FULL_BUILD # The base list of moles to build for this proct is specified # by the appropriate proct definition file, which was included # by proct_config.make. proct_MODULES := $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_PACKAGES) # Filter out the overridden packages before doing expansion proct_MODULES := $(filter-out $(foreach p, $(proct_MODULES), \ $(PACKAGES.$(p).OVERRIDES)), $(proct_MODULES)) $(call expand-required-moles,proct_MODULES,$(proct_MODULES)) proct_FILES := $(call mole-installed-files, $(proct_MODULES)) ...... else # We're not doing a full build, and are probably only including # a subset of the mole makefiles. Don't try to build any moles # requested by the proct, because we probably won't have rules # to build them. proct_FILES := endif ...... moles_to_install := $(sort \ $(ALL_DEFAULT_INSTALLED_MODULES) \ $(proct_FILES) \ $(foreach tag,$(tags_to_install),$($(tag)_MODULES)) \ $(call get-tagged-moles, shell_$(TARGET_SHELL)) \ $(CUSTOM_MODULES) \ ) # Some packages may override others using LOCAL_OVERRIDES_PACKAGES. # Filter out (do not install) any overridden packages. overridden_packages := $(call get-package-overrides,$(moles_to_install)) ifdef overridden_packages # old_moles_to_install := $(moles_to_install) moles_to_install := \ $(filter-out $(foreach p,$(overridden_packages),$(p) %/$(p).apk), \ $(moles_to_install)) endif ...... # Install all of the host moles moles_to_install += $(sort $(moles_to_install) $(ALL_HOST_INSTALLED_FILES)) # build/core/Makefile contains extra stuff that we don't want to pollute this # top-level makefile with. It expects that ALL_DEFAULT_INSTALLED_MODULES # contains everything that's built ring the current make, but it also further # extends ALL_DEFAULT_INSTALLED_MODULES. ALL_DEFAULT_INSTALLED_MODULES := $(moles_to_install) include $(BUILD_SYSTEM)/Makefile moles_to_install := $(sort $(ALL_DEFAULT_INSTALLED_MODULES)) ALL_DEFAULT_INSTALLED_MODULES := ...... .PHONY: ramdisk ramdisk: $(INSTALLED_RAMDISK_TARGET) ...... .PHONY: userdataimage userdataimage: $(INSTALLED_USERDATAIMAGE_TARGET) ...... .PHONY: bootimage bootimage: $(INSTALLED_BOOTIMAGE_TARGET) ...... 如果定义在FULL_BUILD这个变量,就意味着我们是要对整个系统进行编译,并且编译完成之后 ,需要将编译得到的文件进行打包,以便可以得到相应的镜像文件,否则的话,就仅仅是对某些模块进行编译。 在前面Android编译系统环境初始化过程分析一篇文章中,我们提到,变量INTERNAL_PRODUCT描述的是执行lunch命令时所选择的产品所对应的产品Makefile文件,而变量PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_PACKAGES描述的是在该产品Makefile文件中通过变量PRODUCT_PACKAGES所定义的模块名称列表。因此,我们得到的变量proct_MODULES描述的就是要安装的模块名称列表。 我们知道,Android源码中自带了很多默认的APK模块。如果我们想用自己编写的一个APK来代替某一个系统自带的APK,那么就可以通过变量PACKAGES.<new>.OVERRIDES := <old>来说明。其中,<new>表示用来替换的APK,而<old>表示被替换的APK。在这种情况下,被替换的APK是不应该被打包到系统镜像中去的。因此,我们需要从上一步得到的模块名称列表中剔除那些被替换的APK,这是通过Makefile脚本提供的filter-out函数来完成的。 一个模块可以通过LOCAL_REQUIRED_MODULES变量来指定它所依赖的其它模块,因此,当一个模块被安装的时候,它所依赖的其它模块也会一起被安装。调用函数expand-required-moles获得的就是所有要安装的模块所依赖的其它模块,并且将这些被依赖的模块也一起保存在变量proct_MODULES中。 注意,这时候我们得到的proct_MODULES描述的仅仅是要安装的模块的名称,但是我们实际需要的这些模块对应的具体文件,因此,需要进一步调用函数mole-installed-files来获得要安装的模块所对应的文件,也就是要安装的模块经过编译之后生成的文件,这些文件就保存在变量proct_FILES中。 最终需要安装的文件除了变量proct_FILES所描述的文件之后, 还包含以下四类模块文件: 1. 变量ALL_DEFAULT_INSTALLED_MODULES描述的文件。 2. 变量CUSTOM_MODULES描述的文件。 3. 与当前编译类型对应的模块文件。例如,如果当前设定的编译类型为debug,那么所有通过将变量LOCAL_MODULE_TAGS将自己设置为debug的模块也会被打包到系统镜像文件中去。 4. 与当前shell名称对应的模块文件。例如,如果当前使用的shell是mksh,那么所有通过将变量LOCAL_MODULE_TAGS将自己设置为shell_mksh的模块也会被打包到系统镜像文件中去。 最后,moles_to_install就描述当前需要打包到系统镜像中去的模块文件。实际上,我们除了可以通过PACKAGES.$(p).OVERRIDES来描述要替换的APK之后,还可以在一个模块中通过LOCAL_OVERRIDES_PACKAGES来描述它所替换的模块。因此,我们需要通过函数get-package-overrides来获得此类被替换的模块文件,并且将它们从moles_to_install中剔除,这样得到的模块文件才是最终需要安装的。 确定了要安装的所有模块文件之后,就可以将build/core/Makefile文件加载进来了。注意,文件build/core/Makefile是通过变量ALL_DEFAULT_INSTALLED_MODULES来获得当前所有要打包到系统镜像文件中去的模块文件的。 文件build/core/Makefile主要就是用来打包各种Android系统镜像文件的,当然它也是通过make规则来执行各种Android系统镜像文件打包命令的。每一个Android镜像文件都对应有一个make伪目标。例如,在build/core/main.mk文件中,就定义了三个make伪目标ramdisk、userdataimage和bootimage,它们分别依赖于变量INSTALLED_USERDATAIMAGE_TARGET、INSTALLED_USERDATAIMAGE_TARGET和INSTALLED_BOOTIMAGE_TARGET所描述的文件,并且它们分别表示的就是ramdisk.img、userdata.img和boot.img文件。

7. 编译好的APK怎么打包进Android镜像

有一些apk 文件比较重要的,想直接打包到系统中,开机就能使用。网上网络了一下,只有说如何把apk文件打包到system.img 里面,应该也是类似的。试试参考是否行。
把第三方或自己开发的apk文件编译到系统文件(system.img)中的方法:
1 (1)源码编译后,把apk拷贝到out\target\proct\generic\system\app中。
(2) 执行命令make snod , 把添加的spk编到system.img 中
缺点:执行make clean 后,再次make 完毕需要重新执行上面操作。
2 "方法一"的改进。
(1) 新建一个文件夹目录,用来存放apk文件
mkdir packages/apps/Prebuilt_apps
cd packages/apps/Prebuilt_apps
在Prebuilt_apps中新建make文件
vi Android.mk
并写入
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_POST_PROCESS_COMMAND := $(shell cp -r $(LOCAL_PATH)/*.apk $(TARGET_OUT)/app/)
保存退出。
(2) 把需要编译的apk拷贝到目录Prebuilt_apps下,执行make ,Prebuilt_apps中的apk就会考被到out\target\proct\generic\system\app中。
(3) 执行make snod 。完成。
此方法执行make clean 后,再次make 完毕,只需要make snod即可(有时make后,out\target\proct\generic\system\app没有需要添加的apk,此时再make一次即可,速度很快)。
-----------------------
感谢11楼提供的关于编译成功但无法运行问题的解决方法。
解压apk,如其中lib(.so)文件,把 .so文件到system\lib下,再编译。
本人在模拟器上直接加入angrybird.apk(愤怒的小鸟)编译,编译后无法运行。把libangrybirds.so拷贝到system\lib下,再编译后就可以运行

8. android 源码 怎么只编译 systemui

Google提供的Android包含了原始Android的目标机代码,主机编译工具、仿真环境,下载的代码包经过解压后(这里是Android2.2的源码包),源代码的第一层目录结构如下: -- Makefile -- bionic (bionic C库) -- bootable (启动引导相关代码) -- build (存放系统编译规则及generic等基础开发包配置) -- cts (Android兼容性测试套件标准) -- dalvik (dalvik java虚拟机) -- development (应用程序开发相关) -- external (android使用的一些开源的模组) -- frameworks (核心框架——java及C++语言) -- hardware (主要保护硬解适配层HAL代码) -- libcore -- ndk -- device -- out (编译完成后的代码输出与此目录) -- packages (应用程序包) -- prebuilt (x86和arm架构下预编译的一些资源) -- sdk (sdk及模拟器) -- system (文件系统库、应用及组件——c语言) `-- vendor (厂商定制代码) bionic 目录 -- libc (C库) -- arch-arm (ARM架构,包含系统调用汇编实现) -- arch-x86 (x86架构,包含系统调用汇编实现) -- bionic (由C实现的功能,架构无关) -- docs (文档) -- include (头文件) -- inet -- kernel (linux内核中的一些头文件) -- netbsd (?netbsd系统相关,具体作用不明) -- private (?一些私有的头文件) -- stdio (stdio实现) -- stdlib (stdlib实现) -- string (string函数实现) -- tools (几个工具) -- tzcode (时区相关代码) -- unistd (unistd实现) `-- zoneinfo (时区信息) -- libdl (libdl实现,dl是动态链接,提供访问动态链接库的功能) -- libm (libm数学库的实现,) -- alpha (apaha架构) -- amd64 (amd64架构) -- arm (arm架构) -- bsdsrc (?bsd的源码) -- i386 (i386架构) -- i387 (i387架构?) -- ia64 (ia64架构) -- include (头文件) -- man (数学函数,后缀名为.3,一些为freeBSD的库文件) -- powerpc (powerpc架构) -- sparc64 (sparc64架构) `-- src (源代码) -- libstdc++ (libstdc++ C++实现库) -- include (头文件) `-- src (源码) -- libthread_db (多线程程序的调试器库) `-- include (头文件) `-- linker (动态链接器) `-- arch (支持arm和x86两种架构) bootable 目录 -- bootloader (适合各种bootloader的通用代码) `-- legacy (估计不能直接使用,可以参考) -- arch_armv6 (V6架构,几个简单的汇编文件) -- arch_msm7k (高通7k处理器架构的几个基本驱动) -- include (通用头文件和高通7k架构头文件) -- libboot (启动库,都写得很简单) -- libc (一些常用的c函数) -- nandwrite (nandwirte函数实现) `-- usbloader (usbloader实现) -- diskinstaller (android镜像打包器,x86可生产iso) `-- recovery (系统恢复相关) -- edify (升级脚本使用的edify脚本语言) -- etc (init.rc恢复脚本) -- minui (一个简单的UI) -- minzip (一个简单的压缩工具) -- mttils (mtd工具) -- res (资源) `-- images (一些图片) -- tools (工具) `-- ota (OTA Over The Air Updates升级工具) `-- updater (升级器) build目录 -- core (核心编译规则) -- history (历史记录) -- libs `-- host (主机端库,有android “cp”功能替换) -- target (目标机编译对象) -- board (开发平台) -- emulator (模拟器) -- generic (通用) -- idea6410 (自己添加的) `-- sim (最简单) `-- proct (开发平台对应的编译规则) `-- security (密钥相关) `-- tools (编译中主机使用的工具及脚本) -- acp (Android "acp" Command) -- apicheck (api检查工具) -- applypatch (补丁工具) -- apriori (预链接工具) -- atree (tree工具) -- bin2asm (bin转换为asm工具) -- check_prereq (检查编译时间戳工具) -- dexpreopt (模拟器相关工具,具体功能不明) -- droiddoc (?作用不明,java语言,网上有人说和JDK5有关) -- fs_config (This program takes a list of files and directories) -- fs_get_stats (获取文件系统状态) -- iself (判断是否ELF格式) -- isprelinked (判断是否prelinked) -- kcm (按键相关) -- lsd (List symbol dependencies) -- releasetools (生成镜像的工具及脚本) -- rgb2565 (rgb转换为565) -- signapk (apk签名工具) -- soslim (strip工具) `-- zipalign (zip archive alignment tool) dalvik目录 dalvik虚拟机 . -- dalvikvm (main.c的目录) -- dexmp (dex反汇编) -- dexlist (List all methods in all concrete classes in a DEX file.) -- dexopt (预验证与优化) -- docs (文档) -- dvz (和zygote相关的一个命令) -- dx (dx工具,将多个java转换为dex) -- hit (?java语言写成) -- libcore (核心库) -- libcore-disabled (?禁用的库) -- libdex (dex的库) -- libnativehelper (Support functions for Android's class libraries) -- tests (测试代码) -- tools (工具) `-- vm (虚拟机实现) development 目录 (开发者需要的一些例程及工具) -- apps (一些核心应用程序) -- BluetoothDebug (蓝牙调试程序) -- CustomLocale (自定义区域设置) -- Development (开发) -- Fallback (和语言相关的一个程序) -- FontLab (字库) -- GestureBuilder (手势动作) -- NinePatchLab (?) -- OBJViewer (OBJ查看器) -- SdkSetup (SDK安装器) -- SpareParts (高级设置) -- Term (远程登录) `-- launchperf (?) -- build (编译脚本模板) -- cmds (有个monkey工具) -- data (配置数据) -- docs (文档) -- host (主机端USB驱动等) -- ide (集成开发环境) -- ndk (本地开发套件——c语言开发套件) -- pdk (Plug Development Kit) -- samples (演示程序) -- AliasActivity () -- ApiDemos (API演示程序) -- BluetoothChat (蓝牙聊天) -- BrowserPlugin (浏览器插件) -- BusinessCard (商业卡) -- Compass (指南针) -- ContactManager (联系人管理器) -- CubeLiveWall** (动态壁纸的一个简单例程) -- FixedGridLayout (像是布局) -- GlobalTime (全球时间) -- HelloActivity (Hello) -- Home (Home) -- JetBoy (jetBoy游戏) -- LunarLander (貌似又是一个游戏) -- MailSync (邮件同步) -- MultiResolution (多分辨率) -- MySampleRss (RSS) -- NotePad (记事本) -- RSSReader (RSS阅读器) -- SearchableDictionary (目录搜索) -- **JNI (JNI例程) -- SkeletonApp (空壳APP) -- Snake (snake程序) -- SoftKeyboard (软键盘) -- Wiktionary (?维基) `-- Wiktionary**(?维基例程) -- scripts (脚本) -- sdk (sdk配置) -- simulator (?模拟器) -- testrunner (?测试用) `-- tools (一些工具)

9. android系统app frameworks层,hal层,core libs代码编译之后在哪个镜像里

Google提供的Android包含了原始Android的目标机代码,主机编译工具、仿真环境,的代码包经过解压后(这里是Android2.2的源码包),源代码的第一层目录结构如下:
|-- Makefile
|-- bionic (bionic C库)
|-- bootable (启动引导相关代码)
|-- build (存放系统编译规则及generic等基础开发包配置)

|-- cts (Android兼容性测试套件标准)
|-- dalvik (dalvik JAVA虚拟机)
|-- development (应用程序开发相关)
|-- external (android使用的一些开源的模组)
|-- frameworks (核心框架——java及C++语言)
|-- hardware (主要保护硬解适配层HAL代码)
|-- libcore
|-- ndk
|-- device
|-- out (编译完成后的代码输出与此目录)
|-- packages (应用程序包)
|-- prebuilt (x86和arm架构下预编译的一些资源)
|-- sdk (sdk及模拟器)
|-- system (文件系统库、应用及组件——C语言)
`-- vendor (厂商定制代码)

bionic 目录

|-- libc (C库)
| |-- arch-arm (ARM架构,包含系统调用汇编实现)
| |-- arch-x86 (x86架构,包含系统调用汇编实现)
| |-- bionic (由C实现的功能,架构无关)
| |-- docs (文档)
| |-- include (头文件)
| |-- inet
| |-- kernel (Linux内核中的一些头文件)
| |-- netbsd (?netbsd系统相关,具体作用不明)
| |-- private (?一些私有的头文件)
| |-- stdio (stdio实现)
| |-- stdlib (stdlib实现)
| |-- string (string函数实现)
| |-- tools (几个工具)
| |-- tzcode (时区相关代码)
| |-- unistd (unistd实现)
| `-- zoneinfo (时区信息)
|-- libdl (libdl实现,dl是动态链接,提供访问动态链接库的功能)
|-- libm (libm数学库的实现,)
| |-- alpha (apaha架构)
| |-- amd64 (amd64架构)
| |-- arm (arm架构)
| |-- bsdsrc (?bsd的源码)
| |-- i386 (i386架构)
| |-- i387 (i387架构?)
| |-- ia64 (ia64架构)
| |-- include (头文件)
| |-- man (数学函数,后缀名为.3,一些为freeBSD的库文件)
| |-- powerpc (powerpc架构)
| |-- sparc64 (sparc64架构)
| `-- src (源代码)
|-- libstdc++ (libstdc++ C++实现库)
| |-- include (头文件)
| `-- src (源码)
|-- libthread_db (多线程程序的调试器库)
| `-- include (头文件)
`-- linker (动态链接器)
`-- arch (支持arm和x86两种架构)

bootable 目录

|-- bootloader (适合各种bootloader的通用代码)
| `-- legacy (估计不能直接使用,可以参考)
| |-- arch_armv6 (V6架构,几个简单的汇编文件)
| |-- arch_msm7k (高通7k处理器架构的几个基本驱动)
| |-- include (通用头文件和高通7k架构头文件)
| |-- libboot (启动库,都写得很简单)
| |-- libc (一些常用的c函数)
| |-- nandwrite (nandwirte函数实现)
| `-- usbloader (usbloader实现)
|-- diskinstaller (android镜像打包器,x86可生产iso)
`-- recovery (系统恢复相关)
|-- edify (升级脚本使用的edify脚本语言)
|-- etc (init.rc恢复脚本)
|-- minui (一个简单的UI)
|-- minzip (一个简单的压缩工具)
|-- mttils (mtd工具)
|-- res (资源)
| `-- images (一些图片)
|-- tools (工具)
| `-- ota (OTA Over The Air Updates升级工具)
`-- updater (升级器)

build目录

|-- core (核心编译规则)
|-- history (历史记录)
|-- libs
| `-- host (主机端库,有android “cp”功能替换)
|-- target (目标机编译对象)
| |-- board (开发)
| | |-- emulator (模拟器)
| | |-- generic (通用)
| | |-- idea6410 (自己添加的)
| | `-- sim (最简单)
| `-- proct (开发对应的编译规则)
| `-- security (密钥相关)
`-- tools (编译中主机使用的工具及脚本)
|-- acp (Android "acp" Command)
|-- apicheck (api检查工具)
|-- applypatch (补丁工具)
|-- apriori (预链接工具)
|-- atree (tree工具)
|-- bin2asm (bin转换为asm工具)
|-- check_prereq (检查编译时间戳工具)
|-- dexpreopt (模拟器相关工具,具体功能不明)
|-- droiddoc (?作用不明,java语言,网上有人说和JDK5有关)
|-- fs_config (This program takes a list of files and directories)
|-- fs_get_stats (获取文件系统状态)
|-- iself (判断是否ELF格式)
|-- isprelinked (判断是否prelinked)
|-- kcm (按键相关)
|-- lsd (List symbol dependencies)
|-- releasetools (生成镜像的工具及脚本)
|-- rgb2565 (rgb转换为565)
|-- signapk (apk签名工具)
|-- soslim (strip工具)
`-- zipalign (zip archive alignment tool)

dalvik目录 dalvik虚拟机
.
|-- dalvikvm (main.c的目录)
|-- dexmp (dex反汇编)
|-- dexlist (List all methods in all concrete classes in a DEX file.)
|-- dexopt (预验证与优化)
|-- docs (文档)
|-- dvz (和zygote相关的一个命令)
|-- dx (dx工具,将多个java转换为dex)
|-- hit (?java语言写成)
|-- libcore (核心库)
|-- libcore-disabled (?禁用的库)
|-- libdex (dex的库)
|-- libnativehelper (Support functions for Android's class libraries)
|-- tests (测试代码)
|-- tools (工具)
`-- vm (虚拟机实现)

development 目录 (开发者需要的一些例程及工具)
|-- apps (一些核心应用程序)
| |-- BluetoothDebug (蓝牙调试程序)
| |-- CustomLocale (自定义区域设置)
| |-- Development (开发)
| |-- Fallback (和语言相关的一个程序)
| |-- FontLab (字库)
| |-- GestureBuilder (手势动作)
| |-- NinePatchLab (?)
| |-- OBJViewer (OBJ查看器)
| |-- SdkSetup (SDK安装器)
| |-- SpareParts (高级设置)
| |-- Term (远程登录)
| `-- launchperf (?)
|-- build (编译脚本模板)
|-- cmds (有个monkey工具)
|-- data (配置数据)
|-- docs (文档)
|-- host (主机端USB驱动等)
|-- ide (集成开发环境)
|-- ndk (本地开发套件——c语言开发套件)
|-- pdk (Plug Development Kit)
|-- samples (演示程序)
| |-- AliasActivity ()
| |-- ApiDemos (API演示程序)
| |-- BluetoothChat (蓝牙聊天)
| |-- BrowserPlugin (浏览器插件)
| |-- BusinessCard (商业卡)
| |-- Compass (指南针)
| |-- ContactManager (联系人管理器)
| |-- CubeLiveWall** (动态壁纸的一个简单例程)
| |-- FixedGridLayout (像是布局)
| |-- GlobalTime (全球时间)
| |-- HelloActivity (Hello)
| |-- Home (Home)
| |-- JetBoy (jetBoy游戏)
| |-- LunarLander (貌似又是一个游戏)
| |-- MailSync (同步)
| |-- MultiResolution (多分辨率)
| |-- MySampleRss (RSS)
| |-- NotePad (记事本)
| |-- RSSReader (RSS阅读器)
| |-- SearchableDictionary (目录搜索)
| |-- **JNI (JNI例程)
| |-- SkeletonApp (空壳APP)
| |-- Snake (snake程序)
| |-- SoftKeyboard (软键盘)
| |-- Wiktionary (?维基)
| `-- Wiktionary**(?维基例程)
|-- scripts (脚本)
|-- sdk (sdk配置)
|-- simulator (?模拟器)
|-- testrunner (?测试用)
`-- tools (一些工具)

10. 怎么把android的apk 应用程序打包到userdata.img镜像当中去

有一些apk 文件比较重要的,想直接打包到系统中,开机就能使用。网上网络了一下,只有说如何把apk文件打包到system.img 里面,应该也是类似的。试试参考是否行。 把第三方或自己开发的apk文件编译到系统文件(system.img)中的方法: 1 (1)源码编译后,把apk拷贝到out\target\proct\generic\system\app中。 (2) 执行命令make snod , 把添加的spk编到system.img 中 缺点:执行make clean 后,再次make 完毕需要重新执行上面操作。 2 "方法一"的改进。 (1) 新建一个文件夹目录,用来存放apk文件 mkdir packages/apps/Prebuilt_apps cd packages/apps/Prebuilt_apps 在Prebuilt_apps中新建make文件 vi Android.mk 并写入 LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_POST_PROCESS_COMMAND := $(shell cp -r $(LOCAL_PATH)/*.apk $(TARGET_OUT)/app/) 保存退出。 (2) 把需要编译的apk拷贝到目录Prebuilt_apps下,执行make ,Prebuilt_apps中的apk就会考被到out\target\proct\generic\system\app中。 (3) 执行make snod 。完成。 此方法执行make clean 后,再次make 完毕,只需要make snod即可(有时make后,out\target\proct\generic\system\app没有需要添加的apk,此时再make一次即可,速度很快)。 ----------------------- 感谢11楼提供的关于编译成功但无法运行问题的解决方法。 解压apk,如其中lib(.so)文件,把 .so文件到system\lib下,再编译。 本人在模拟器上直接加入angrybird.apk(愤怒的小鸟)编译,编译后无法运行。把libangrybirds.so拷贝到system\lib下,再编译后就可以运行。 触宝输入法apk使用此方法也可编译运行成功。 -------------------- 使用mkyaffs2image工具,使上面的操作更简单! 把apk及相关文件(如.so)拷贝到system的相应路径下,执行 mkyaffs2image -f direction/system system.img,即可生成system.img ------------------------------------------------------------ 原文地址:/thread-58113-1-1.html 俺的师弟说用 make userdataimage-nodeps 这个,这几种方法我都试试。嘿嘿。 等下来报告结果。 晕,不行的这样。呵呵,压根没更新userdata.img 执行make userdataimage-nodeps 后两分钟左右,终端就显示下面的信息,生成了out/target/proct/generic/userdata.img Target userdata fs image: out/target/proct/generic/userdata.img 我马上烧写到我的S5PV210 试试。菜鸟啊,菜鸟中前进。 out/host/linux-x86/bin/mkyaffs2image -f out/target/proct/smdkv210/data out/target/proct/smdkv210/userdata.img ——这个就可以了,不过的确存在愤怒的小鸟打包进去不能运行的问题,有些apk 文件打包进去就能运行。看来还是一些库的打包没处理好。 原来是是这个android 系统被改的不成样子,用上述命令就可以顺利生成我们最新的userdata.img 了。 android系统存在问题,导致下面的命令都无效。 Android比较重要的三个img文件: make systemimage - system.img make userdataimage - userdata.img make ramdisk - ramdisk.img PS:make snod - 快速打包system.img

热点内容
数据库access2003 发布:2024-05-19 02:49:39 浏览:619
碧蓝航线pc挂机脚本 发布:2024-05-19 02:30:03 浏览:588
脚本fir 发布:2024-05-19 02:28:57 浏览:260
阿里云独享服务器 发布:2024-05-19 02:23:54 浏览:253
织梦源码ga 发布:2024-05-19 02:23:20 浏览:571
java文件名后缀 发布:2024-05-19 02:14:39 浏览:956
快手点榜脚本 发布:2024-05-19 02:08:44 浏览:163
pythonforinkeys 发布:2024-05-19 01:55:44 浏览:793
电脑如何局域网共享文件夹 发布:2024-05-19 01:25:01 浏览:69
手机存储越大性能越好吗 发布:2024-05-19 01:14:28 浏览:177