`
agui2007
  • 浏览: 27703 次
  • 性别: Icon_minigender_1
  • 来自: 浙江
社区版块
存档分类
最新评论

在源码中编译自己的Android project

阅读更多

在源码中编译自己的 Android project

 

Daniel Wood 08/27/2010

1) 将在 Eclipse (当然也可以用记事本编写)中编写好的纯源代码( src+res+AndroidManifest.xml )拷到 Android 源代码文件夹下的 packages/apps 文件夹中,如: /Android/android1.6_r2/packages/apps 。拷过去的文件结构如图(不包括 Android.mk 文件 ):


2) 然后添加 Android.mk 文件,在 Android project 文件夹下,例子中的 Android.mk 文件 内容如下:

Android.mk
LOCAL_PATH:= $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE_TAGS := eng

LOCAL_SRC_FILES := $(call all-java-files-under, src)

LOCAL_PACKAGE_NAME := HelloWorld    #这个就是你以后生成的apk的名字

include $(BUILD_PACKAGE)
 

 

3) 然后在 /Android/android1.6_r2 目录下在终端输入 make [project name]

例子:

@desktop:~/Android/android-1.6_r2$ make HelloWorld

PLATFORM_VERSION_CODENAME=REL

PLATFORM_VERSION=1.6

TARGET_PRODUCT=generic

TARGET_BUILD_VARIANT=eng

TARGET_SIMULATOR=

TARGET_BUILD_TYPE=release

TARGET_ARCH=arm

HOST_ARCH=x86

HOST_OS=linux

HOST_BUILD_TYPE=release

BUILD_ID=DRD35

============================================

build/core/copy_headers.mk:15: 警告:覆盖关于目标“out/target/product/generic/obj/include/libpv/getactualaacconfig.h”的命令

build/core/copy_headers.mk:15: 警告:忽略关于目标“out/target/product/generic/obj/include/libpv/getactualaacconfig.h”的旧命令

target R.java/Manifest.java: HelloWorld (out/target/common/obj/APPS/HelloWorld_intermediates/src/R.stamp)

Warning: AndroidManifest.xml already defines verOz/8

。。。

Install: out/target/product/generic/system/app/HelloWorld.apk

  就是在上面这个目录下生成了 HelloWorld.apk 文件

 

 

4) HelloWorld.apk 装入模拟器。

 

你可以用adb push 命令把HelloWorld.apk装入自己的模拟器,你会在模拟器中看到HelloWorld的应用。

 

在终端执行 make snod ,执行目录为 /Android/android1.6_r2

@desktop:~/Android/android-1.6_r2$ make snod

============================================

PLATFORM_VERSION_CODENAME=REL

PLATFORM_VERSION=1.6

TARGET_PRODUCT=generic

TARGET_BUILD_VARIANT=eng

TARGET_SIMULATOR=

TARGET_BUILD_TYPE=release

TARGET_ARCH=arm

HOST_ARCH=x86

HOST_OS=linux

HOST_BUILD_TYPE=release

BUILD_ID=DRD35

============================================

build/core/copy_headers.mk:15: 警告:覆盖关于目标“out/target/product/generic/obj/include/libpv/getactualaacconfig.h”的命令

build/core/copy_headers.mk:15: 警告:忽略关于目标“out/target/product/generic/obj/include/libpv/getactualaacconfig.h”的旧命令

make snod: ignoring dependencies

Target system fs image: out/target/product/generic/system.img

 

就是重新在上述路径生成 system.img 文件。 system.img 文件就是对 system 文件夹的打包,这个打包越打包越大!

 

5) 然后启动模拟器。首先要 config 一下(这一步只限于目录下有config文件的,可以执行. config命令。)

@desktop:~/Android/android-1.6_r2$ . config #注意点号后面的空格

Set PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/home/smrdn/Android/android-1.6_r2/out/host/linux-x86/bin

Set ANDROID_PRODUCT_OUT=/home/smrdn/Android/android-1.6_r2/out/target/product/generic

然后 emulator 命令启动模拟器:

@desktop:~/Android/android-1.6_r2$ emulator

  在启动的模拟器中,将看到你的工程。如下图:

 


  • 大小: 55.4 KB
  • 大小: 155.6 KB
0
2
分享到:
评论
2 楼 gaoxiaoweiandy 2011-11-22  
你好,我用你的方法make project , 结果报错: 是因为我的代码中包含中文,好像是因为编码问题,例如报错,不能识别“代码中的中文 确定2个汉字”。于是,我改成英文后,执行make project 仍然报一样的错误,仍然说不能识别“确定2个汉字”。我想,是因为要清理掉 第一次 make project生成的文件吧,否则代码以及不包含“确定”2个中文字符了,还要报上次旧的错误。请问,如何清除第一次编译的结果,重新编译。我的QQ254904252.你的呢,希望和你交流。
gaoxiaoweiandy 写道
你好,我用你的方法make project , 结果报错: 是因为我的代码中包含中文,好像是因为编码问题,例如报错,不能识别“代码中的中文 确定2个汉字”。于是,我改成英文后,执行make project 仍然报一样的错误,仍然说不能识别“确定2个汉字”。我想,是因为要清理掉 第一次 make project生成的文件吧,否则代码已经不包含“确定”2个中文字符了,还要报上次旧的错误。请问,如何清除第一次编译的结果,重新编译。我的QQ254904252.你的呢,希望和你交流。

1 楼 gaoxiaoweiandy 2011-11-22  
你好,我用你的方法make project , 结果报错: 是因为我的代码中包含中文,好像是因为编码问题,例如报错,不能识别“代码中的中文 确定2个汉字”。于是,我改成英文后,执行make project 仍然报一样的错误,仍然说不能识别“确定2个汉字”。我想,是因为要清理掉 第一次 make project生成的文件吧,否则代码以及不包含“确定”2个中文字符了,还要报上次旧的错误。请问,如何清除第一次编译的结果,重新编译。我的QQ254904252.你的呢,希望和你交流。

相关推荐

    android P android9源码编译.ipr.iml文件

    总的来说,`.ipr`和`.iml`文件在Android P源码编译过程中起着关键作用,它们帮助开发者在Android Studio环境中高效地管理和编译大规模的源代码项目。通过理解这些文件的作用,开发者可以更流畅地进行源码级别的调试...

    Android 源码编译的jar包

    本文将详细阐述如何编译Android源码以生成`classes.jar`,以及这个过程中的关键知识点。 首先,让我们了解`classes.jar`的作用。它包含了Android系统的Java类库,包含了Android Framework的核心API,开发者可以从中...

    android使用NDK编译curl库源码

    在这个场景中,我们将探讨如何在Android环境下使用NDK(Native Development Kit)编译Curl库源码。 首先,NDK是Google提供的一个工具集,允许开发者在Android应用中集成原生代码。通过NDK,我们可以编写C和C++代码...

    安卓Android源码——Android Launcher 源码修改可编译.zip

    3. **编译Android源码**:要编译Android源码,开发者需要搭建AOSP(Android Open Source Project)环境,安装必要的工具如Repo、JDK、NDK等,并执行make命令来构建系统。 4. **源码修改**:修改Android源码可能包括...

    官方Launcher3可以在Android Studio上编译

    为了在Android Studio中编译和调试Launcher3,我们需要对源代码进行一些适配工作。这包括但不限于添加Gradle构建支持,以及调整项目结构以符合Android Studio的项目规范。此外,描述中提到的“上滑显示应用列表”和...

    freetype android 编译so库

    在Android开发中,有时我们需要对特定的开源库进行编译,以便将其集成到我们的应用程序中。Freetype是一个流行的开源字体渲染库,广泛用于多种操作系统和设备,包括Android。本篇将详细介绍如何在Android环境中编译...

    使用Android NDK编译Android平台的eXosip库

    在Android Studio的`File` > `Project Structure`中,检查并配置NDK路径。 2. **获取源码**:下载eXosip的源代码,可以从其官方仓库或者通过Git克隆。在本例中,我们使用的版本是libexosip2-5.0.0。 3. **构建配置...

    安卓Android源码——系统源码获取及编译.zip

    Android源码存储在Google的Git仓库Android Open Source Project (AOSP)中。开发者需要安装Git,并配置好SSH密钥,然后克隆AOSP仓库。命令通常如下: ```bash $ git clone ...

    Ubuntu系统下Android源码编译.pdf

    Android源码主要托管在GitHub的AOSP(Android Open-Source Project)仓库中。开发者需要使用Git克隆源码到本地,通常命令为`git clone https://github.com/aosp-mirror/platform_manifest.git`。此外,还需要设置...

    Android Launcher 源码修改可编译.zip源码资源下载

    为了修改和编译Android Launcher源码,你需要一个完整的Android开发环境,包括安装了Android SDK、Android Studio和必要的工具链。以下是一般步骤: 1. **导入项目**:在Android Studio中打开源码目录,通过"File" ...

    AndroidStudio 编译C/C++文件生成SO文件

    总结来说,Android Studio支持C/C++开发主要依赖于NDK,通过配置`build.gradle`和编写`Android.mk`文件,可以将C/C++代码编译为SO文件,并在Java代码中调用。这个过程涉及到项目结构的理解、Makefile的编写以及JNI...

    windows下编译adb源码

    2. **Android NDK**:NDK(Native Development Kit)是Android系统的一部分,提供了在C/C++中编译和运行原生代码的工具。你需要下载与你的Android SDK版本兼容的NDK,并将其添加到系统的PATH环境变量中。 3. **...

    Android 7.0相机源码

    在提供的压缩包中,我们看到`.classpath`、`.project`和`project.properties`等文件,这些都是Eclipse或ADT(Android Development Toolkit)项目的配置文件。它们用于指定项目依赖、构建路径以及编译目标平台等信息...

    Android源码编译文档

    首先,Android源码的下载通常通过Git工具进行,因为Android的源码是托管在Google的Git仓库Android Open Source Project (AOSP)中。开发者需要安装Git,然后使用特定的命令克隆AOSP仓库。这个过程可能会比较漫长,...

    Android_4.2_源码下载和编译环境安装及Android_4.2_源码编译

    Android源码通常存储在GitHub的AOSP(Android Open Source Project)仓库中。对于Android 4.2,命令可能是: ``` git clone https://android.googlesource.com/platform/manifest -b android-4.2 ``` - 这个过程...

    SQLCipher_for_Android_source_build_源码编译过程

    标题《SQLCipher_for_Android_source_build_源码编译过程》和描述《SQLCipher_for_Android_sourcebuild_源码编译过程》指向了一个关于如何在Android平台上构建SQLCipher源码的过程。SQLCipher是一个开源的数据库加密...

    SDL Android下编译源码

    2. **获取SDL源码**:从官方网站或GitHub仓库下载SDL2.0.3的源代码。解压到本地目录,例如`~/SDL2-2.0.3`。 3. **创建Android项目**:在Eclipse中新建一个Android项目,选择"Native Activity"模板。这将为你生成一...

    Android系统源码的编译和分析.zip

    Android源代码是开源的,主要托管在Google的Git仓库AOSP(Android Open Source Project)上。下载源码通常涉及以下步骤:设置环境,包括安装必要的工具如Git、repo,配置编译环境,然后使用repo工具初始化并拉取源码...

    android 9.0 源码下载(28 r6)

    下载和编译Android源码是一项复杂的任务,需要耐心和一定的技术背景。不过,通过这个过程,开发者可以深入了解Android的工作机制,实现更深层次的定制和优化。如果你对Android有浓厚的兴趣,这绝对是一个值得投入的...

    Android单个模块编译

    在Android开发中,单个模块编译是一种常见的实践,它允许开发者独立地构建和测试应用程序或库的一个特定部分,而不必整个项目一起编译。这对于大型项目尤其有用,因为这样可以提高开发效率并减小程序构建时间。下面...

Global site tag (gtag.js) - Google Analytics