导航:首页 > 源码编译 > android内核编译优化

android内核编译优化

发布时间:2022-07-03 05:53:02

Ⅰ 如何预编译 android 模拟器专用内核

Android源码编译之后生成的是ramdisk.img、system.img和userdata.img。而内核源码编译完成之后生成的是ZImage。在一般情况下Android源码是不带有内核源码的,但是带有一个镜像,这样在编译完Android源码之后就可以模拟器启动了,如果要更换系统的内核,此时将高版本的内核源码进行编译生成ZImage然后替换Android系统的的镜像。这样使用模拟器启动之后就可以查看内核是否已经被刷新。

Ⅱ android kernel 怎么编译

1.准备工作: (ubuntu1110 32位)
ubuntu等linuxOS,下载好eclipse,安装好JDK, 安装好android的SDK, 在eclipse中成功打开android 手机模拟器即OK。

2.初始化编译环境 :
关注该网页上的“installing required packages”,其中有的软件包因为版本问题而安装不上,不用管它,之后遇到错误再单独解决。

3.下载内核源码:
android 2.3 内核 下载需要等待一段时间。

4.下载交叉编译器:
该步骤有可能耗费大量时间,依据网速不同,几个小时到几天不等,或许可以尝试git clone 后面的地址只下载prebuilt/linux-x86/toolchain

5.设置参数以及编译:
$ export ARCH=arm
$ export SUBARCH=arm
$ export CROSS_COMPILE=arm-eabi-
$ cd goldfish // 进入下载的源代码目录
$ git checkout <commit_from_first_step> //这个步骤没有做,不知道干嘛用的
$ make goldfish_defconfig
$ make

6.报错信息:
若有报错说找不到 (arm-eabi-gcc command not found)等等,尝试使用http://blog.csdn.net/davidbeckham2901/article/details/7397447 中说到的解决方案即可(即采用另外一个交叉编译器)。

7.测试:

最后,测试一下刚才编译的内核:emulator -avd myavd -kernel ~/goldfish/arch/arm/boot/zImageemulator若系统找不到,可以去android SDK中某文件夹找到,加入系统PATH即可。 -avd后面的参数 myavd即为模拟器的名字,这个咱是在eclipse中的模拟器管理中新建的一个模拟器,用那个模拟器的名字即可。 -kernel后面的参数就找到刚才编译出的内核的路径。
若启动模拟器失败,可尝试关闭后再启动。第一次启动模拟器时可能需要等待比较长的时间,3分钟到15分钟不等。

Ⅲ 安卓菜鸟关于 init.rc 中的 init.${ro.hardware}.rc 与 out 目录下生成的.rc文件名不一致的问题

Android本质上就是一个基于Linux内核的操作系统。与Ubuntu Linux、Fedora Linux类似。只是Android在应用层专门为移动设备添加了一些特有的支持。既然Android是Linux内核的系统,那么基本的启动过程也应符 合Linux的规则。如果研究过其他Linux系统应该了解,一个完整的Linux系统首先会将一个Linux内核装载到内存,也就是编译Linux内核 源代码生成的bzImage文件,对于为Android优化的Linux内核源代码会生成zImage文件。该文件就是Linux内核的二进制版本。由于 zImage在内核空间运行,而我们平常使用的软件都是在应用空间运行(关于内核空间和应用空间的详细描述,可以参考《Android深度探索(卷1):HAL与驱动开发》一书的内容,在后续的各卷中将会对Android的整体体系进行全方位的剖析)。内核空间和应用空间是不能直接通过内存地址级别访问的,所以就需要建立某种通讯机制。

Ⅳ 如何反编译android应用以及重编译,签名和对齐优化

首先,了解一下我们为什么需要反编译apk
大部分情况下,是由于想本地化一款优秀的应用,才需要做这事儿;又或者进行少量的smali修改以达到想要的效果(如添加归属地,使3G版Nexus 7支持Wi-Fi热点)。

下面我们先准备运行环境和工具
建立工作目录,如.\workspace\apktoolbox (下面同样以此路径为例)
必不可少的JDK:Oracle java下载,安装完成后把<jdk-inst-path>\bin添加到$PATH环境变量中
反编译和重编译工具apktool:Google Code下载,按平台下载(一个apktool-install-<platform>-<ver>-tar.bz2,一个apktool<ver>.tar.bz2,下载完成后解压至.\workspace\apktoolbox\bin
密钥文件,共4组。test/shared/media/platform,从android source中获取,分别对应不同共享用户ID时签名所需(查看应用AndroidManifest.xml第二行android:sharedUserId项 ),放到.\workspace\apktoolbox\bin下
test - 无android:sharedUserId项
shared - android:sharedUserId=android.uid.shared
media - android:sharedUserId=android.uid.media
platform - android:sharedUserId=android.uid.system
签名工具signapk.jar,放到.\workspace\apktoolbox\bin下
对齐优化工具zipalign(从android sdk中获取,在tools目录下),放到.\workspace\apktoolbox\bin下
准备工作完成

接下来我们就要开始工作了(以本地化工作为例)
把待反编译的apk放到.\workspace\apktoolbox\apks下
命令行模式下进入.\workspace\apktoolbox\bin目录,输入以下命令进行解包(反编译)
apktool d ..\apks\<apkfile>.apk ..\apks\<outdir>
.\workspace\apktoolbox\apks\<outdir>\res下的values目录(英文原版)和values-r<locale>目录(本地化)就是我们需要的对象。
本地化工作完成后,在命令行中输入以下命令进行重新打包(重新编译)
apktool b ..\apks\<outdir>

.\workspace\apktoolbox\apks\<outdir>\dist目录下会生成重新打包后的apk(未签名,未对齐优化)
重新打包完成后,在命令行中输入以下命令进行签名(根据实际情况选用密钥,这里以test密钥为例)
java -jar signapk.jar testkey.x509.pem testkey.pk8 ..\apks\<outdir>\dist\<apkfile>.apk ..\apks\<apkfile>_signed.apk

签名完成后,在命令行中输入以下命令进行对齐优化
zipalign -f -v 4 ..\apks\<apkfile>_signed.apk ..\apks\<apkfile>_zipaligned.apk

<apkfile>_zipaligned.apk就是我们最终需要的apk了。
完成
部分apk需要系统框架资源,没有的话在重新打包时会报错,这种情况下我们只需要先安装一下对应系统框架即可(从你目标ROM中把/system/framework/framework-res.apk提取出,放到.\workspace\apktoolbox\apks下)。在命令行中输入以下命令进行安装
apktool if ..\apks\framework-res.apk

Ⅳ 如何加速Android源码的编译

每个编译单元都会产生一个obj文件,然后所以这些obj文件会被link到一起,并且这个过程很难并行

Ⅵ 如何提高android.mk的编译速度

从eclipse转到Android studio,总觉得编译速度或者安装到手机上的速度会变很快,现实是仍然很慢,所以就搜如何提高build速度,安装真机上apk能快一点,步骤如下:
1.修改android studio的使用堆内存,根据自己电脑的内存,尽量设置的大一点,点击help->如下图:
2.接下来设置使用离线gradle构建,一开始就是使用了内置的默认路径gradle,勾选offline这个选项,编译的速度快的不止一点点,在.gradle的离线位置,建立一个gradle.properties的文件,设置精灵后台一直编译,这样提高了很多的速度

Ⅶ 如何优化 Android Studio 启动,编译和运行速度

优化 Android Studio 启动速度

1、开启 gradle 单独的守护进程

当 Android Studio 遇到错误的时候,往往会导致 Android Studio 挂掉,为了防止推出程序,则另外开启一个线程来守护
Android Studio 的进程,具体操作。 在 C:\Users\.gradle 这个目录下,创建 gradle.properties
配置文件,复制以下配置进行优化。
# Project-wide Gradle settings.
org.gradle.daemon=true
org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m
-XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
org.gradle.parallel=true
org.gradle.configureondemand=true

这些配置文件主要就是增大 gradle 运行的 java 虚拟机的大小,让 gradle 在编译的时候使用独立进程,让 gradle 可以很好的运行。

2、扩大内存

64位:\studio64.exe.vmoptions or studio.exe.vmoptions
32位:\studio.exe.vmoptions or studio.exe.vmoptions
编辑这个文件,在最开始的两行设置内存大小,类似于eclipse.ini中的配置。配置如下:
-Xms256m
-Xmx1024m

3、优化编译时VM大小

选择 file->setting->compile 添加如下参数:
-Xmx1024m
-XX:MaxPermSize=128m
-XX:+HeapDumpOnOutOfMemoryError
-Dfile.encoding=UTF-8

具体参数大小视电脑配置而定。

Ⅷ 对android 下的linux内核有什么可行的优化建议

Linux Kernel在3.X的版本上面增加了对Android驱动的支持 -- Low Memory Killer、Binder等几项,还增加了GoldFish的一些支持。
只有这几项是与Android有关的,对于一般的Android而言。

因此你的问题其实是“linux内核有什么可行的优化建议?有什么提升内核稳定性的手段和工具?”
但是对于这个问题,我对Linux内核的了解还不足以回答你的问题。

但是针对不同的具体硬件环境,更改MM是一个重要的议题。另外在嵌入式这边,脱离硬件的谈软件似乎不妥。
例如有的时候系统性能很差的,我们会使用Dstream的StreamLine来分析具体某个线程(应用),查看Datasheet看看对应的硬件/驱动有什么可以改进的,例如BT蓝牙的串口如何开启UART的DMA。

Ⅸ 如何加快Android Studio的编译速度

作为一名Android程序员,选择一个好的IDE工具可以使开发变得非常高效,很多程序员喜欢使用Google的AndroidStudio来进行开发,但使用起来有时会出现卡顿等问题。本文介绍了几种优化AndroidStudio启动、编译、运行速度的方法。首先解决一个AndroidStudio启动报错的问题1、进入刚安装的AndroidStudio目录下的bin目录。找到idea.properties文件,用文本编辑器打开。2、在idea.properties文件末尾添加一行:disable.android.first.run=true,然后保存文件。3、关闭AndroidStudio后重新启动,便可进入界面。优化AndroidStudio启动速度1、开启gradle单独的守护进程当AndroidStudio遇到错误的时候,往往会导致AndroidStudio挂掉,为了防止推出程序,则另外开启一个线程来守护AndroidStudio的进程,具体操作。在C:\Users\.gradle这个目录下,创建gradle.properties配置文件,复制以下配置进行优化。#Project-wideGradlesettings.org.gradle.daemon=trueorg.gradle.jvmargs=-Xmx2048m-XX:MaxPermSize=512m-XX:+HeapDumpOnOutOfMemoryError-Dfile.encoding=UTF-8org.gradle.parallel=trueorg.gradle.configureondemand=true这些配置文件主要就是增大gradle运行的java虚拟机的大小,让gradle在编译的时候使用独立进程,让gradle可以很好的运行。2、扩大内存64位:\studio64.exe.vmoptionsorstudio.exe.vmoptions32位:\studio.exe.vmoptionsorstudio.exe.vmoptions编辑这个文件,在最开始的两行设置内存大小,类似于eclipse.ini中的配置。配置如下:-Xms256m-Xmx1024m3、优化编译时VM大小选择file->setting->compile添加如下参数:-Xmx1024m-XX:MaxPermSize=128m-XX:+HeapDumpOnOutOfMemoryError-Dfile.encoding=UTF-8具体参数大小视电脑配置而定。经过测试,编译速度有很大提升,比较大的项目从之前的5-8分钟可以减少到1-2分钟。OneAPMMobileInsight能够实时监测移动应用的真实用户体验,通过Agent实现端到端的应用性能分析。帮助用户提高发现应用问题的速度。并且可以深入到代码级进行应用性能问题剖析,通过可视化界面展示智能移动终端的实时运行状态。

Ⅹ 如何编译android kernel

1.准备工作: (ubuntu1110 32位)
ubuntu等linuxOS,下载好eclipse,安装好JDK, 安装好android的SDK, 在eclipse中成功打开android 手机模拟器即OK。

2.初始化编译环境 :
关注该网页上的“installing required packages”,其中有的软件包因为版本问题而安装不上,不用管它,之后遇到错误再单独解决。

3.下载内核源码:
android 2.3 内核 下载需要等待一段时间。

4.下载交叉编译器:
该步骤有可能耗费大量时间,依据网速不同,几个小时到几天不等,或许可以尝试git clone 后面的地址只下载prebuilt/linux-x86/toolchain

5.设置参数以及编译:
$ export ARCH=arm
$ export SUBARCH=arm
$ export CROSS_COMPILE=arm-eabi-
$ cd goldfish // 进入下载的源代码目录
$ git checkout <commit_from_first_step> //这个步骤我没有做,不知道干嘛用的
$ make goldfish_defconfig
$ make

6.报错信息:
若有报错说找不到 (arm-eabi-gcc command not found)等等,尝试使用http://blog.csdn.net/davidbeckham2901/article/details/7397447 中说到的解决方案即可(即采用另外一个交叉编译器)。

7.测试:

最后,测试一下刚才编译的内核:emulator -avd myavd -kernel ~/goldfish/arch/arm/boot/zImageemulator若系统找不到,可以去android SDK中某文件夹找到,加入系统PATH即可。 -avd后面的参数 myavd即为模拟器的名字,这个我是在eclipse中的模拟器管理中新建的一个模拟器,用那个模拟器的名字即可。 -kernel后面的参数就找到刚才编译出的内核的路径。
若启动模拟器失败,可尝试关闭后再启动。第一次启动模拟器时可能需要等待比较长的时间,3分钟到15分钟不等。

阅读全文

与android内核编译优化相关的资料

热点内容
车机怎么设置开机logo只有安卓 浏览:237
cssjs压缩工具下载 浏览:370
安卓手机nfc怎么录入门禁卡 浏览:643
ios算法和数据结构 浏览:697
天翼云服务器客服 浏览:794
程序员16k测试 浏览:541
新人程序员如何定计划 浏览:505
毕业设计单片机仿真 浏览:835
阿里ai云服务器 浏览:437
小程序云服务器可以绑个人账户吗 浏览:730
王者荣耀体验服ios怎么登陆安卓的 浏览:288
客户想要的与程序员理解的 浏览:670
硅谷一普通程序员的一天 浏览:459
算法实现两个集合合并 浏览:78
班长命令什么意思 浏览:142
51单片机c语音 浏览:734
悦翔v3压缩比 浏览:717
oppo怎样修改手机里的文件夹名称 浏览:223
PHP图片上传替换 浏览:142
androidtv桌面 浏览:812