当前位置:首页 » 编程软件 » 编译安卓

编译安卓

发布时间: 2022-01-30 13:57:56

A. windows下如何编译android源码

如果没记错,windows下是没法编译android框架源代码的

因为android是基于linux平台的,因此底层的很多东西都是基于linux系统的

如果只是单纯的android应用程序,则可以在windows下开发编译

只需要用Eclipse的adt插件加上windows下开发的Android SDK就行了。

B. 自己可以编译安卓源码吗

用最新的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源码的多仓库管理机制.下面,不妨自己动手尝试一下.

    C. 如何编译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目录下。

    D. 如何编译一个精简的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应用程序,修改其源码后可以实现随系统的启动而自动启动的功能。

    E. 请问怎么编译安卓软件

    呵呵,你学过java吧,基本功就有了,安卓软件是用java来写的~不过我觉得安卓软件是不用编译的,因为里面的主程序是格式化的xml文件,在软件成形的过程中只是把一些文件打包起来就行了,你可以试下把安卓软件的后缀名改成zip,就可以看见源程序和文件了~然后呢,你要想做安卓软件的话,先搭建一个安卓的开发环境,用到的东西有Myeclipse这个软件(你应该知道的),然后到网上下载安卓开发的SDK即开发字典~有一本叫安卓开发案例的书,可以看下,另外网上有很多的视频教程~PS:我自己之前只写过一个安卓的HELLO,WORLD!,由于大一事情比较多就没有继续研究了,如果你有问题可以CALL我哦,我们一起学~

    F. 有手机的源代码,如何编译安卓4.4的系统

    代码编译…
    恐怕这个不是随随便便在这里几句话就能说明白的…
    首先要下载安卓4.4的内核,
    然后要把厂商的手机源代码编译进去,
    还要自己写脚本,
    很多都是很技术的活。
    lz确定能hold住么?

    G. 如何将自己写的程序 编译成android 自带的程序

    首先你也放到packages/apps下,不过要修改的不是makefile,是Android.mk文件。如果你的HelloWorld是从eclipse下面建立出来的,默认是没有Android.mk文件的,要自己写一个。

    H. 如何单独编译安卓系统源码指定模块

    Android源码目录下的build/envsetup.sh文件,描述编译的命令

    - m: Makes from the top of the tree.

    - mm: Builds all of the moles in the current directory.

    - mmm: Builds all of the moles in the supplied directories.

    要想使用这些命令,首先需要在android源码根目录执行. build/envsetup.sh 脚本设置环境

    m:编译所有的模块

    mm:编译当前目录下的模块,当前目录下要有Android.mk文件

    mmm:编译指定路径下的模块,指定路径下要有Android.mk文件

    下面举个例子说明,假设我要编译android下的\hardware\libhardware_legacy\power模块,当前目录为源码根目录,方法如下:

    1、. build/envsetup.sh

    2、mmm hardware/libhardware_legacy/power/

    编译完后 运行 make snod

    会重新将你改过的模块打入到system.img中

    I. 如何将apk源码编译进android系统

    1. 把源码放到packages/apps目录下

    2. 写个mk文件,放到你的app的工程根目录下

    3. 在源码中mmm这个app的路径

    J. 如何将源代码编译后的文件编译到android中

    1.将应用程序源码复制进Android源码目录中(提前编译好源码) 2.使用build/envsteup.sh 配置shell - mm TARGET_PRODUCT=proct_name 或直接./build_android.sh 也能完成编译。 3.在源码目录:out/target/proct/proctname/obj/APPS/test_cert_intermediates 下有三个文件:package.apk package.apk.unsigned package.apk.unaligned 将package.apk.unsigned复制出来,单独进行sign. 4.在Windows下进行sign: jarsigner -verbose -keystore youkey.keystore d:\package.apk.unsigned youkey 5.zipalign -v 4 d:\package.apk.unsigned d:\package.signed.apk

    热点内容
    压缩性胸闷 发布:2024-05-08 08:18:18 浏览:526
    电脑哔哩哔哩pc端的缓存 发布:2024-05-08 08:17:05 浏览:169
    王者服务器崩溃估计什么时候好 发布:2024-05-08 08:16:51 浏览:574
    qj压缩机 发布:2024-05-08 08:10:13 浏览:841
    dhcp服务器可以分配什么参数 发布:2024-05-08 08:07:36 浏览:958
    跨象限编程 发布:2024-05-08 07:58:37 浏览:61
    java多对一 发布:2024-05-08 07:58:33 浏览:641
    苹果怎么创建文件夹 发布:2024-05-08 07:53:34 浏览:917
    html连接sql数据库 发布:2024-05-08 07:53:28 浏览:736
    网易云盘无法上传 发布:2024-05-08 07:48:42 浏览:598