- 浏览: 929307 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
itzhongyuan:
java Random类详解 -
david_je:
你好,我看到你在C里面回调JAVA里面的方法是在native里 ...
Android NDK开发(1)----- Java与C互相调用实例详解 -
fykyx521:
请求锁是在 oncreate 释放实在ondestroy?? ...
Android如何保持程序一直运行 -
aduo_vip:
不错,总结得好!
Android读取assets目录下的资源 -
f839903061:
给的网址很给力哦!
Android 4.0.1 源码下载,编译和运行
1.需要至少15G大的大小写敏感分区,以免build debug版本空间不够
在Mac下编译android的源代码需要一个大小写敏感(Case Sensitive)的分区格式如果你原来的分区不是HFS一类大小写敏感的文件格式,那么最简单的办法就是新建一个这种分区格式的dmg出来,命令如下:
sudo hdiutil create -size 15g -type UDIF -fs HFSX -volname android ~/android.dmg
sudo chown $USER ~/android.dmg
1)双击android.dmg,mount volume到/Volumes/android。
2)进入系统偏好设置-->帐户-->登录项-->点"+",选android.dmg这样系统启动的时候会自动mount volume
2.下载代码或者直接拷贝已有源代码到/Volumes/android目录下
下载源码需要安装Repo工具,该工具是为了更好的使用Git源代码管理软件(类似于CVS等版本控制系统),执行以下命令创建~/bin目录:
$ cd ~
$ mkdir bin
$ echo $PATH
下载Repo:
$ curl https://android.git.kernel.org/repo >~/bin/repo
$ chmod a+x ~/bin/repo
之后在/Volumes/android目录下创建android目录以存放android源码:
$ cd /Volumes/android
$ mkdir android
$ cd android
接着初始化Repo客户端:
$ repo init -u git://android.git.kernel.org/platform/manifest.git
成功后显示:
repo initialized in /Volumes/android/android
这时在/Volumes/android/android目录下就会有.repo的目录用来同步manifest文件,该文件是用来同步源码的,下载源码使用命令:
$ repo sync
大概要下载4G多的文件,所有下载过程会比较长。
非常重要的,下载完成之后需要打几个补丁,请分别执行以下命令,按顺序打以下四个补丁:
cd build
git pull git://android.git.kernel.org/platform/build refs/changes/74/12074/3
cd system/core
git pull git://android.git.kernel.org/platform/system/core refs/changes/45/11845/3
cd external/qemu
git pull git://android.git.kernel.org/platform/external/qemu refs/changes/46/11846/3
cd system/core
git pull git://android.git.kernel.org/platform/system/core refs/changes/97/12597/1
3.下载并安装XCode和MacPorts
首先下载安装最新的XCode,下载地址:http://developer.apple.com
然后下载MacPorts,下载地址: http://www.macports.org/
修改~/.profile文件,添加:
# set the number of open files to be 1024
ulimit -S -n 1024
4.编译源码
首先修改~/.profile文件,内容类似:
# MacPorts Installer addition on 2010-05-19_at_19:14:53: adding an appropriate PATH variable for use with MacPorts.
export ANDROID_PRODUCT_OUT=/Volumes/android/Android-Source/out/target/product/generic
export ANDROID_PRODUCT_OUT_BIN=/Volumes/android/Android-Source/out/host/darwin-x86/bin
export PATH=/opt/local/bin:/opt/local/sbin:${ANDROID_PRODUCT_OUT_BIN}:${ANDROID_PRODUCT_OUT}:$PATH
# Finished adapting your PATH environment variable for use with MacPorts.
# MacPorts Installer addition on 2010-05-19_at_19:14:53: adding an appropriate MANPATH variable for use with MacPorts.
export MANPATH=/opt/local/share/man:$MANPATH
# Finished adapting your MANPATH environment variable for use with MacPorts.
然后打开一个新的命令行窗口,执行以下命令:
$ cd /Volumes/android/Android-Source
$ make
源码编译时间较长,大概需要4~5个小时,请耐心等待,编译完成之后,执行命令:
$ emulator
将 调出模拟器,说明编译成功!
1. 打最后补丁时出错,错误如下:
“Pull is not possible because you have unmerged files.
Please, fix them up in the work tree, and then use ‘git add/rm ‘
as appropriate to mark resolution, or use ‘git commit -a’.”
改用命令:
“git clone git://android.git.kernel.org/platform/system/core refs/changes/97/12597/1″
出错原因:
./external/elfutils/config-compat-darwin.h:42: error: static declaration of ‘strnlen’ follows non-static declaration
/usr/include/string.h:143: error: previous declaration of ‘strnlen’ was here
make: *** [out/host/darwin-x86/obj/STATIC_LIBRARIES/libelf_intermediates/lib/xmalloc.o] Error 1
解决方案:参考别人些的文章
http://blog.sephiroth.it/2011/10/17/compiling-android-source-on-mac-lion/
modify ./external/elfutils/config-compat-darwin.h.
replace:
static inline size_t strnlen (const char *__string, size_t __maxlen)
{
int len = 0;
while (__maxlen-- && *__string++)
len++;
return len;
}
with:
#if 0
static inline size_t strnlen (const char *__string, size_t __maxlen)
{
int len = 0;
while (__maxlen-- && *__string++)
len++;
return len;
}
#endif
Well, at the end of the process I just edited the Android.mk makefile into external/skia adding a new entry for BUILD_STATIC_LIBRARY and the next command was simply:
mmm external/skia
which produced the required libskia.a file to be linked in my project.
第二个问题:
warning: ignoring file out/host/darwin-x86/obj/STATIC_LIBRARIES/
libSDL_intermediates/libSDL.a, file was built for archive which is not
the architecture being linked (i386)
Undefined symbols for architecture i386:
Do this by commenting out all lines in
external/qemu/Android.mk
The toolchain problem stems from the fact that Android actually supports the mac toolchain from Snow Leopard and onwards. So put homebrew path LAST in $PATH, so that it uses the Mac toolchain first.
When building DevNull/Oxygen ROM you in addition to the steps above also need to make a symlink in /usr/local/bin from sed to gsed, since they explicitly call gsed at one point. Also you have to disable WITH_DEXPREOPT like so:
make -j8 [devnull] WITH_DEXPREOPT=false
发表评论
-
Android使用binder访问service的方式
2013-08-23 09:42 16351. 我们先来看一个与本地service通信的例子。 pub ... -
android-Service和Thread的区别
2013-08-23 09:17 914servie是系统的组件,它由系统进程托管(servicema ... -
git介绍
2013-08-01 14:49 1035git介绍 使用Git的第一件事就是设置你的名字和email ... -
cocos2d-x学习之自动内存管理和常见宏
2013-07-29 15:41 9081.自动内存管理 1)概述 C++语言默认是 ... -
cocos2dx中利用xcode 调用java中的函数
2013-07-29 11:36 25251. 先把cocos2dx根目录中的 /Users/zhaos ... -
cocos2dx(v2.x)与(v1.x)的一些常用函数区别讲解
2013-07-29 10:35 1109第一个改动: CCLayer初始化 自定义Layer,类名 ... -
xcode与eclipse整合cocos2dx
2013-07-29 10:32 1220文档xcode版本是 204 1. 在xcode中创建coc ... -
git提交代码
2013-07-23 16:00 10531. 在本地创建一个Git的工作空间,在里面创建一个工程(如H ... -
Android.mk的用法和基础
2013-07-19 14:11 4332一个Android.mk file用来向编译系统描述你的源代码 ... -
eclipse配置NDK-Builder命令
2013-07-18 11:02 10351. 2. -
eclipse配置javah命令
2013-07-18 10:48 19941.找到javah命令所在的目录 我的为 /usr/bi ... -
Android SDL2.0 编译
2013-07-17 13:40 19671,下载: wget http://www.libsdl.o ... -
GCC 编译使用动态链接库和静态链接库
2013-07-16 21:28 14551 库的分类 根据链接时期的不同,库又有静态库和动态库之分。 ... -
在mac下编写ffmpeg项目
2013-07-15 21:32 9901.建立工程TestFFmpeg 2.编写c文件 mian. ... -
使用低版本gcc/g++
2013-06-08 14:22 1241解决方法为有两个 第一个方法: 上下载对应版本的.deb文件 ... -
IntelliJ Idea 常用快捷键列表
2013-05-27 10:19 0Alt+回车 导入包,自动修 ... -
android应用后台安装
2013-05-21 12:02 1016android应用后台安装,静默安装的代码实现方法 http ... -
编译linux内核映像
2013-05-21 11:33 962a)准备交叉编译工具链 android代码树中有一个pr ... -
如何单独编译Android源代码中的模块
2013-05-21 11:29 994一. 首先在Android源代码 ... -
Ubuntu安装JDK6和JDK5
2013-05-19 19:04 1007sudo apt-get install sun-java6- ...
相关推荐
构建SQLCipher for Android源码通常需要在Linux或Mac OS X系统上,使用Android NDK(Native Development Kit)进行编译。这意味着需要配置Android SDK、JDK、NDK等开发环境,并确保它们的路径被配置为系统环境变量。...
在Android系统开发和调试过程中,理解源码编译过程至关重要,特别是对于系统核心组件的定制和优化。在本文中,我们将深入探讨“android-4.4-源码编译-linux_x86-bin目录工具”,这是一个专为Linux x86平台设计的工具...
### Mac 下编译 Android 源代码的关键步骤与注意事项 #### 一、磁盘分区 在 Mac 上编译 Android 源代码之前,首先要解决的一个问题是磁盘分区问题。这是因为 Mac 的默认文件系统(APFS 或 HFS+)通常设置为不区分...
在本文中,我们将深入探讨如何在Mac OS环境下,使用Android Studio编译FFmpeg解码库。FFmpeg是一个强大的开源项目,提供了音视频处理的各种工具和库,包括编码、解码、转换等功能。在Android开发中,它常用于实现...
JEB支持多种平台,包括Mac OS和Windows,这使得它成为跨平台的反编译利器。 **一、JEB的功能特性** 1. **源代码反编译**:JEB能够将APK中的Dalvik字节码转换回接近原生的Java源代码,便于理解和分析。 2. **高级...
1. 下载JD-GUI的最新版本,包括Windows、Linux或Mac OS X的对应版本。 2. 解压缩下载的文件,找到`jd-gui.exe`(Windows)或相应的可执行文件。 3. 双击`jd-gui.exe`启动应用程序。 步骤二:反编译APK 1. 打开APK...
构建Android源Mac OS编译android 8.1.0源码系统macOS Mojave版本10.14.6下载Android源码设置.bash_profile # 其他内容全注释掉 ulimit -S -n 1024 export PATH=~/bin:$PATH 安装repo $ mkdir ~/bin //创建bin文件夹 ...
这个“android反编译脚本(unix like版本)”正是针对Linux和Mac OS平台设计的工具,它能够帮助用户在这些Unix-like系统上便捷地反编译APK文件,揭示其内部结构和逻辑。 首先,我们要理解反编译的基本概念。反编译...
1. **跨平台支持**:由于Java的“Write Once, Run Anywhere”特性,JD-GUI也能够提供对多种操作系统的支持,如Windows、Linux和Mac OS。尽管它不建议通过常规的安装步骤来部署,但用户可以直接下载适用于各自系统的...
【描述】描述中的"安卓Android源码——仿Mac的Dock.zip"表明这个项目主要关注于通过编程实现Android系统的Dock栏,以模仿Mac OS的用户体验。开发者可能已经实现了动态效果,如应用图标滑动、缩放等,以及点击时的...
本文主要针对Linux(特别是Ubuntu)和Mac OS操作系统,详细讲解了如何配置一个可以编译Android源码的环境。 首先,值得注意的是,Android的编译并不支持Windows环境,开发者需要使用Linux或Mac OS作为开发平台。在...
1. **设置环境**:首先,确保你有一台装有Linux或Mac OS的计算机,因为Windows系统可能不支持完整的源码编译。安装必要的工具,如Git、Java Development Kit (JDK) 和repo(一个用于管理Android源码的特殊工具)。 ...
此项目是基于Libjpegturbo的编译文件,支持v7a,v8a,x86,x86_64,armeabi。编译环境为mac os , ndk-16b, libjpegturbo-2.0.3版本,cmake 12
1. **下载与安装**: 获取Apktool的最新版本,根据操作系统(Windows、Linux、Mac OS)进行安装配置。 2. **解压APK**: 使用Apktool命令行工具,输入`apktool d <apk_file>`来解压APK文件,这将生成一个包含源代码和...
要在 Linux 环境下编译 Android 源码,需要安装以下软件包: * Git 1.5.4 或更高版本 * JDK 5.0,更新 12 或更高版本(注意,Java 6 不被支持,因为它与 @Override 不兼容) * flex、bison、gperf、libsdl-dev、...
Snes9x是一个开源的SFC/SNES模拟器,它在多种操作系统上表现优秀,包括Windows、Linux和Mac OS X等。此模拟器的核心是精确的CPU和GPU模拟,使得游戏能在非原生硬件上流畅运行。在Android环境下,Snes9x被移植并优化...
Mac OS X通常使用Homebrew或Xcode的Command Line Tools来管理依赖和编译。curl和ssh可以通过源码安装,但可能需要解决macOS特有的依赖问题,如SSL库。预编译库适用于Xcode项目,提供dylib动态库,可以直接引入到项目...
它为Linux、Mac OS X以及FreeBSD等系统提供了对NTFS分区的支持,具备高效、稳定和安全的特点。在Android系统下移植ntfs-3g,主要涉及以下几个关键步骤: 1. **编译环境准备**:首先,你需要一个已经安装了Android ...
Android源码编译只支持Linux和Mac OS操作系统。如果选择虚拟机,需要考虑足够的磁盘空间,至少50GB(推荐120GB),且Google建议使用64位系统。下载源码涉及以下步骤: 1. 安装Git作为版本控制工具。 2. 安装curl以...