主题 : build-android 编译Android,看不懂 复制链接 | 浏览器收藏 | 打印
邮箱:yucejun@126.com,欢迎讨论!
级别: 侠客
UID: 34734
精华: 0
发帖: 101
金钱: 510 两
威望: 102 点
贡献值: 0 点
综合积分: 202 分
注册时间: 2010-12-20
最后登录: 2018-07-15
楼主  发表于: 2011-04-01 09:38

 build-android 编译Android,看不懂

build-android里的命令我看不懂,希望有人解释一二,不胜感谢!
============================================
#!/bin/bash

if [ ! -e "./jdk1.6.0_23" ]; then
    tar xzf jdk1.6.0_23.tar.gz
fi

tar xzf symlinks.tgz

if [ -e "../Android-2.2-apps/" ]; then
     cd ../Android-2.2-apps/
    ./apply_patch.sh
    cd -
fi

export PATH=$PWD/jdk1.6.0_23/bin:$PATH
. setenv
make -j$CPU_JOB_NUM || exit 1

if [ -e "../Android-2.2-apps/" ]; then
     cd ../Android-2.2-apps/
     ./build-apps
     cd -
fi

exit 0
================================
1,-e "./jdk1.6.0_23"
-e "../Android-2.2-apps/"  
问题:-e是什么意思?书上查不到。是检查文件(夹)存在的么?
"./jdk1.6.0_23" 当前目录下的jdk1.6.0_23
"../Android-2.2-apps/"上一个目录下的Android-2.2-apps,是这样理解么?
2,下面是什么用法,中间有一空格的,运行了setenv?
. setenv
结果是输出:
including device/htc/passion/vendorsetup.sh
including device/samsung/crespo/vendorsetup.sh
3,make -j$CPU_JOB_NUM || exit 1
变量是4,也就是 make -j4,能提示下-j4是什么意思么?我完全看不出来。

4,最后一个和mini6410 android2.3源码有关的
-e "../Android-2.2-apps/"  如果是上一个目录下的Android-2.2-apps,那我编译的时候肯定没有,确认一下没影响吧。

问题比较多和杂,跟我想得比较乱有关,抱歉!
大家如能给点提示就能给我很大的帮助啦!!!
自由,自强,共享,共创。
级别: 论坛版主
UID: 12573
精华: 27
发帖: 8838
金钱: 46490 两
威望: 9298 点
贡献值: 27 点
综合积分: 18216 分
注册时间: 2010-01-09
最后登录: 2019-07-16
1楼  发表于: 2011-04-01 10:43
e - exist
建议你先了解并掌握一些Linux shell知识。
新手如何向我们反馈有效的信息,以便解决问题,见此贴:
http://www.arm9home.net/read.php?tid-14431.html

[注]: 此处签名链接仅为指引方向,而非解答问题本身.
级别: 荣誉会员
UID: 34761
精华: 0
发帖: 1348
金钱: 6835 两
威望: 1367 点
贡献值: 0 点
综合积分: 2696 分
注册时间: 2010-12-21
最后登录: 2017-06-02
2楼  发表于: 2011-04-01 11:57
如果不存在 jdk1.6.0_23 目录,就从压缩包中解压一个出来
if [ ! -e "./jdk1.6.0_23" ]; then
    tar xzf jdk1.6.0_23.tar.gz
fi

tar xzf symlinks.tgz

可以忽略这几行,因为FRIENDLYARM提供的包中不存在此目录
if [ -e "../Android-2.2-apps/" ]; then
     cd ../Android-2.2-apps/
    ./apply_patch.sh
    cd -
fi

将JDK的BIN目录添加到PATH环境变量
export PATH=$PWD/jdk1.6.0_23/bin:$PATH
设置ANDROID环境变量,点和空格意指在setenv脚本中导出的环境变量在当然SHELL会话中生效(否则仅在setenv脚本执行期间有效)
. setenv
开始编译Android,-jN参数是利用CPU多核来加快编译速度
make -j$CPU_JOB_NUM || exit 1

可以忽略这几行,因为FRIENDLYARM提供的包中不存在此目录
if [ -e "../Android-2.2-apps/" ]; then
     cd ../Android-2.2-apps/
     ./build-apps
     cd -
fi

exit 0
[ 此帖被hacker在2011-04-01 12:04重新编辑 ]
邮箱:yucejun@126.com,欢迎讨论!
级别: 侠客
UID: 34734
精华: 0
发帖: 101
金钱: 510 两
威望: 102 点
贡献值: 0 点
综合积分: 202 分
注册时间: 2010-12-20
最后登录: 2018-07-15
3楼  发表于: 2011-04-01 14:37
非常感谢楼上两位的回复,感谢hacker大侠的注解,非常清楚,很好很强大!!