免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1434 | 回复: 0
打印 上一主题 下一主题

Android命令行体验及其遇到的问题(linux) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-11-18 17:15 |只看该作者 |倒序浏览
北京理工大学  20981班  陈罡
Android的SDK是for java的,而且文档中明确说明需要配合Eclips IDE和
插件使用才会比较好。但是我就是那样的一个人,说我贱也好(人家给你
的好好的IDE插件不用,自讨麻烦。。。),爱好钻研也好,我总是想弄
清楚ide背后隐藏了什么东西,我认为,只有熟练了命令行的形式,才能更加
高效的使用IDE,出了问题可以明确知道是代码的问题、IDE的问题还是本身SDK就出了问题。
我用的linux是slackware 12.0,基于2.6.21-5 smp的linux内核,KDE版本是
3.5.7。缺省有java的jre,但是没有安装jdk。既然Android是基于java的,
jdk的安装看来就是必须的了。
(一)安装Ant
Ant命令行工具是Apache小组开发的基于xml配置文件的自动化编译工具,
熟悉linux下面c\c++开发的朋友应该对Makefile不陌生,它就是另外一种
形式的auto-make,只不过ant的Makefile的格式必须是xml格式的。
可以在如下网站下载到:
http://ant.apache.org/bindownload.cgi
我下载的是apache-ant-1.7.0-bin.tar.gz,安装过程很简单,下载到的
.tar.gz的压缩包直接解压缩到/usr/local目录下就行了。
tar zxvf apache-ant-1.7.0-bin.tar.gz
它就是一顿狂解,结果是生成了一个目录是apache-ant-1.7.0
把它加入到/etc/profile里面或者.bashrc里面作为全局可以访问的即可。
(二)安装JDK
这里需要特别说明,如果你下载和安装的是ant-1.7.0那么你的jdk版本
一定要是1.5以上的,也就是jdk 5.0以上的才行。hoho,我就是不知道
这点,装好了jdk 1.4.2折腾了半天也不行,后来重做才行了。
这个jdk直接到sun的官网上就可以下载到。
我下载的是最新的JDK 6.0版本的jdk-6u3-linux-i586-rpm.bin。
解压出来是个rpm,由于slackware不支持rpm,所以转一下:
rpm2targz jdk-6u3-linux-i586-rpm.rpm [回车]
然后就会生成:
jdk-6u3-linux-i586-rpm.tar.gz
然后把它解压到/usr/local里面即可。
#tar zxvf jdk-6u3-linux-i586-rpm.tar.gz
这里,jdk的目录很深,自动创建了/usr/java/jdk1.6.0_03
直接把最深得那个目录拷出来即可。
现在就可以修改环境变量了,我把我的/etc/profile相关部分贴出来:
export JAVA_HOME=/usr/java/jdk1.6.0_03
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$HOMR/bin:/usr/local/apache-ant-1.7.0/bin:
好了,logout,然后重新登录一次,这时候用:
echo $JAVA_HOME查看一下,我们刚刚在profile中的设置是否生效。
然后运行一下java和javac,如果出现:
javac -version
Error occurred during initialization of VM
java/lang/ClassNotFoundException: error in opening JAR file /usr/local/java/jre/lib/rt.jar
恭喜你,你出现了和我遇到的一样的错误。然后,用java的诊断模式看一下问题:
java -verbose [回车]
如果不出意外的话,应该是提醒你rt.jar或者tools.jar没有找到
解决的方法是:
进入jdk1.6.0_03/lib目录,在jdk的bin目录下有一个unpack200,你需要直接把tools.pack解包成jar文件
#../bin/unpack200 tools.pack tools.jar
好了,这还每完,你还需要把所有的jar设成可执行的模式:
#chmod +x *.jar
这是解决tools.jar的问题,然后再进入jdk1.6.0_03/jre/lib目录下:
#../../bin/unpack200 rt.pack rt.jar
#chmod +x *.jar
好了,这样处理完毕后,logout ,然后重新登录进来。
运行一下你的java -verbose应该没问题,运行-version应该有如下的输出:
[email=wayne@wayne:/usr/java/jdk1.6.0_03/jre/lib$]wayne@wayne:/usr/java/jdk1.6.0_03/jre/lib$[/email]
java -version
java version "1.6.0_03"
Java(TM) SE Runtime Environment (build 1.6.0_03-b05)
Java HotSpot(TM) Client VM (build 1.6.0_03-b05, mixed mode)
这个时候应该是把jdk 1.6装上了。
(三)用命令行生成和编译Android项目
它里面有一个HelloWord的详细描述,不过80%都是讲如何利用Eclipse做HelloWorld的。
这里我们就要用手工来做一下了。
首先进入一个可以用来做试验的目录,例如:/home/wayne/works/android_dev
android的sdk解包后的目录名字太长,不好敲,我就给它改成android_sdk了。
利用它tools里面提供的python脚本来自动生成android工程:
可以使用如下命令:
$pwd [回车]
/home/wayne/works/android
$android_sdk/tools/activityCreator.py --out HelloAndroid com.google.android.hello.HelloAndroid  [回车]
package: com.google.android.hello
out_dir: HelloAndroid
activity_name: HelloAndroid
Created directory HelloAndroid/src/com/google/android/hello
Added file HelloAndroid/src/com/google/android/hello/HelloAndroid.java
Created directory HelloAndroid/bin
Created directory HelloAndroid/res/values
Added file HelloAndroid/res/values/strings.xml
Created directory HelloAndroid/res/layout
Added file HelloAndroid/res/layout/main.xml
Added file HelloAndroid/AndroidManifest.xml
Added file HelloAndroid/build.xml
$
好了,到此为止activityCreateor应该已经创建了一个缺省的android的工程,HelloAndroid了。
然后,进入,开始编译:
$cd HelloAndroid
$ant
Buildfile: build.xml
dirs:
    [mkdir] Created dir: /home/wayne/works/android/HelloAndroid/bin/classes
resource-src:
     [echo] Generating R.java...
aidl:
compile:
    [javac] Compiling 2 source files to /home/wayne/works/android/HelloAndroid/bin/classes
dex:
package-res:
package-res-no-assets:
     [echo] Packaging resources...
package-dex:
     [echo] Packaging dex...
package:
BUILD SUCCESSFUL
Total time: 4 seconds
这些是输出,如果成功的话,ant自动生成的apk的包就在HelloAndroid/bin目录下。
$cd bin
$ls
classes/  classes.dex  HelloAndroid.apk
$
这个HelloAndroid.apk就是你生成的包了,可以用于在模拟器上模拟了!!
(四)安装和运行HelloAndroid程序
把android的emulator运行起来(注意一定要把模拟器运行起来才能继续):
$../../android_sdk/tools/emulator &  [回车]
$
然后用adb命令把这个.apk结尾的包安装到android模拟器上面。
$../../android_sdk/tools/adb install HelloAndroid.apk  [回车]
22 KB/s (4240 bytes in 0.181s)
$
不出意外的话,应该看到如下的传输速率的显示。此时,在模拟器里面选择Application图标,
按ok键进入后,会看到下面多了一个HelloAndroid的圆形图标。然后把光标移动到它上面,就可以运行了!
如下图所示:

安装上HelloAndroid程序的模拟器抓图


HelloAndroid的运行时效果图

(五)删除生成的HelloAndroid程序
Android sdk,就如同大话西游一般。那个紫霞仙子只预见了前半段,却没有预见后半段。。。
提供了adb的install指令,却没有提供uninstall或者remove指令。没办法,如果要删除这个
HelloAndroid.apk的话,我们只能难看一点,手工来做了:
$../../android_sdk/tools/adb shell [回车]
#  
到此,基本的linux环境下的Android建立到删除的全过程展示完毕。希望对感兴趣的朋友有用。
命令行模式下的单步调试,等有时间再说。。。

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/26691/showart_425251.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP