导航:首页 > 操作系统 > android全编译

android全编译

发布时间:2022-06-17 12:48:03

① 整体编译android系统,大家用了多少时间

我自己实际编译ICS4.0.4源码情况:acer台式机,3.2Ghz cpu,4核,8GB/1600hz内存,整体编译(含u-boot、kernel、boot.img和system.img)需要1小时10分钟。编译时,使用make -j8(因为硬件cpu是4线程的,故使用2倍线程数)。之后的增量编译,一般需要5~10分钟即可。

② android怎么把混淆的代码完全编译出来

工具:
apktool,作用:资源文件获取,可以提取出图片文件和布局文件进行使用查看
dex2jar,作用:将apk反编译成java源码(classes.dex转化成jar文件)
jd-gui,作用:查看APK中classes.dex转化成出的jar文件,即源码文件

反编译流程:
一、apk反编译得到程序的源代码、图片、XML配置、语言资源等文件
下载上述工具中的apktool,解压得到3个文件:aapt.exe,apktool.bat,apktool.jar ,将需要反编译的APK文件放到该目录下,
打开命令行界面(运行-CMD) ,定位到apktool文件夹,输入以下命令:apktool.bat d -f test.apk test
(命令中test.apk指的是要反编译的APK文件全名,test为反编译后资源文件存放的目录名称,即为:apktool.bat d -f [apk文件 ] [输出文件夹])

获取成功之后,发现在文件夹下多了个test文件,点击便可以查看该应用的所有资源文件了。
如果你想将反编译完的文件重新打包成apk,那你可以:输入apktool.bat b test(你编译出来文件夹)便可
之后在之前的test文件下便可以发现多了2个文件夹:

build
dist(里面存放着打包出来的APK文件)

二、Apk反编译得到Java源代码
下载上述工具中的dex2jar和jd-gui ,解压
将要反编译的APK后缀名改为.rar或则 .zip,并解压,得到其中的额classes.dex文件(它就是java文件编译再通过dx工具打包而成的),将获取到的classes.dex放到之前解压出来的工具dex2jar-0.0.9.15 文件夹内,
在命令行下定位到dex2jar.bat所在目录,输入dex2jar.bat classes.dex,
在改目录下会生成一个classes_dex2jar.jar的文件,然后打开工具jd-gui文件夹里的jd-gui.exe,之后用该工具打开之前生成的classes_dex2jar.jar文件,便可以看到源码了

③ 如何编译一个精简的Android系统

本次试验使用的android源码是4.2,编译的架构是mini-mips。

一、所做的工作
1、修改build/target/proct/mini.mk,去掉一些不必要的模块(例如Phone、DownloadManager等)
2、修改SystemServer.java,屏蔽一些service,让系统能够启动起来(例如,Location Manager、Telephony Registry)
3、修改dalvik/vm/native/dalvik_system_Zygote.cpp,注释掉因为检查不到外部存储而导致dalvik abort的地方 (这是googel的一个bug,在2013年1月份已解决,如果用这以后的代码不用修改此处)
4、修改WindowManagerService.java,把发送BOOT_TIMEOUT消息的时间改为0(之前为30秒)

二、系统优化后的效果(验证工作均在mips模拟器上进行)
1、节省运行内存,下面是全编译与mini编译的内存使用状态的对比
1)full build
MemTotal: 499360 kB
MemFree: 242064 kB
2)mini build
MemTotal: 499360 kB
MemFree: 395192 kB

2、缩短开机启动时间
在虚拟机上的启动时间
1)full build-29秒
2)mini build-14秒

3、只启动home程序,其余的应用程序均被移除

三、保留android的开发环境
1、adb,ddms,apkinstall等,都能正常工作
2、在eclipse中编写的android应用程序能够运行在该mini-android之上

四、开机自动启动指定应用程序
本次测试使用Gallery.apk应用程序,修改其源码后可以实现随系统的启动而自动启动的功能。

④ 自己可以编译安卓源码吗

用最新的Ubuntu 16.04,请首先确保自己已经安装了Git.没安装的同学可以通过以下命令进行安装:

sudo apt-get install git git config –global user.email “[email protected]” git config –global user.name “test”

其中[email protected]为你自己的邮箱.

简要说明

android源码编译的四个流程:1.源码下载;2.构建编译环境;3.编译源码;4运行.下文也将按照该流程讲述.

源码下载

由于某墙的原因,这里我们采用国内的镜像源进行下载.
目前,可用的镜像源一般是科大和清华的,具体使用差不多,这里我选择清华大学镜像进行说明.(参考:科大源,清华源)

repo工具下载及安装

通过执行以下命令实现repo工具的下载和安装

mkdir ~/binPATH=~/bin:$PATHcurl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repochmod a+x ~/bin/repo

补充说明
这里,我来简单的介绍下repo工具,我们知道AOSP项目由不同的子项目组成,为了方便进行管理,Google采用Git对AOSP项目进行多仓库管理.在聊repo工具之前,我先带你来聊聊多仓库项目:

我们有个非常庞大的项目Pre,该项目由很多个子项目R1,R2,...Rn等组成,为了方便管理和协同开发,我们为每个子项目创立自己的仓库,整个项目的结构如下:


这里写图片描述

执行完该命令后,再使用make命令继续编译.某些情况下,当你执行jack-admin kill-server时可能提示你命令不存在,此时去你去out/host/linux-x86/bin/目录下会发现不存在jack-admin文件.如果我是你,我就会重新repo sync下,然后从头来过.

错误三:使用emulator时,虚拟机停在黑屏界面,点击无任何响应.此时,可能是kerner内核问题,解决方法如下:
执行如下命令:

  • ./out/host/linux-x86/bin/emulator -partition-size 1024 -kernel ./prebuilts/qemu-kernel/arm/kernel-qemu-armv7

  • 通过使用kernel-qemu-armv7内核 解决模拟器等待黑屏问题.而-partition-size 1024 则是解决警告: system partion siez adjusted to match image file (163 MB >66 MB)

    如果你一开始编译的版本是aosp_arm-eng,使用上述命令仍然不能解决等待黑屏问题时,不妨编译aosp_arm64-eng试试.

    结束吧

    到现在为止,你已经了解了整个android编译的流程.除此之外,我也简单的说明android源码的多仓库管理机制.下面,不妨自己动手尝试一下.

    ⑤ android external目录 是全部编译吗

    => external/eyes-free:
    accessibilityvalidator.jar (host,share)

    => external/mesa3d:
    libMesa.so (host,static)
    system/lib/libMesa.so (static)
    out/host/linux-x86/bin/glsl_compiler (host)

    => external/iproute2:

    => external/iproute2/tc:
    system/bin/tc

    ⑥ Android源码编译是干什么

    编译Android系统。

    ⑦ 如何编译android sdk

    如果没有真正开发板,又想深入到android framework里,或kernel里的话,就只能用android 的emulator了。 但是我们下载的android SDK没有源代码,我们没办法跟踪修改framework和kernel里的东西。
    所以有了想尝试自己从头生成SDK的想法。

    1. 首先下载编译android所有source code.
    具体步骤这里不再赘述,参考ht tp:/ /source.and roid.c om/download
    cd mydroid
    repo init -u git://android.git.kernel.org/platform/manifest.git
    repo sync
    一点小提示: 有时候google的android服务器老是断,总不能让我们守在电脑旁边一直手工重新repo sync吧,这可是需要N个小时才能下载完的啊。

    我们就写个小脚本让电脑自动repo sync,直到下载成功为止:
    #!/bin/sh
    count=0
    ret=1
    while [ $ret -ne 0 ]
    do
    repo sync
    ret=$?
    count=$(( $count + 1))
    echo "try $count, ret: $ret"
    done
    echo "try $count, ret: $ret"
    把上面的内容复制到一个文件里tryrepo.sh
    然后修改tryrepo.sh的属性,开始自动工作吧。第二点早上应该就大功告成了
    chmod a+x tryrepo.sh
    ./tryrepo.sh

    2. 编译android, 生成SDK
    make sdk

    漫长的等待之后,SDK生成了,在目录:mydroid\out\host\linux-x86\sdk\android-sdk_eng.yanbin_linux-x86\platforms\
    在linux下面可以直接运行mydroid\out\host\linux-x86\sdk\android-sdk_eng.yanbin_linux-x86\tools\android 就可以看到熟悉的android emulator启动界面。

    如果想在windows XP下使用这个SDK和emulator, 最简单的方法是:
    (1)自己下载一个最新的windows版本的android 2.0 SDK。
    (2)把mydroid\out\host\linux-x86\sdk\android-sdk_eng.yanbin_linux-x86\platforms\下的东西复制到windows版SDK的platforms下。
    (3) 然后把platforms下android-2.0下tools目录下的几个.exe文件复制到自己编译的SDK目录下的tools目录下。

    ⑧ android 全部编译时 userdata没有被编译到怎么解决

    1、将jar包放入项目里的libs文件夹中。 2、在project选中jar包点击右键"Add as library"。 3、这两步是网上比较容易找到的,但此时项目仍然是无法正常编译的,这时需要在项目的build.gradle文件里的dependencies节加入 dependencies

    ⑨ Android工程编译顺序是怎么样的先编译哪个模块,后编译哪个模块由谁来决定的

    在ActivityManifest.xml声明的Activity中,含有
    <intent-filter>
    <action android:name="android.intent.action.MAIN" />
    <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
    是最先执行的,其它类就的顺序在这个主函数中先调用或跳转哪个就是哪个了

    阅读全文

    与android全编译相关的资料

    热点内容
    只狼加存档应该是哪个文件夹 浏览:110
    程序员秃头图片 浏览:920
    思科路由器命令手册 浏览:26
    android获得当前activity 浏览:833
    python入门迷宫 浏览:70
    Python打折代码不含商品 浏览:221
    把多个Word合成一个pdf 浏览:356
    aes算法描述 浏览:899
    新手机压缩包在哪 浏览:781
    java抽奖程序源码 浏览:700
    汽车压缩机又叫 浏览:95
    android读取data文件 浏览:874
    红旗智联app怎么跟h5车子连接 浏览:139
    材料化学pdf 浏览:114
    服务器机房都有什么东西 浏览:370
    最近长阴短柱量能副图指标源码 浏览:647
    python字符串去除后四位 浏览:167
    捷速pdf编辑器破解版 浏览:726
    大带宽服务器怎么租 浏览:299
    篮球程序员单身难吗 浏览:877