Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1532541
  • 博文数量: 114
  • 博客积分: 10010
  • 博客等级: 上将
  • 技术积分: 1357
  • 用 户 组: 普通用户
  • 注册时间: 2006-11-19 18:13
文章分类
文章存档

2010年(8)

2009年(9)

2008年(27)

2007年(62)

2006年(8)

我的朋友

分类: Java

2007-11-18 17:15:22

北京理工大学  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格式的。
可以在如下网站下载到:

我下载的是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应该有如下的输出:
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 [回车]
#  <------------注意如果成功登录android模拟器,这里的图标变成了"#"
#cd /data/app
#ls
-rw-rw-rw- root     root         4240 2007-11-18 08:36 HelloAndroid.apk
-rw-r--r-- system   system    1325834 2007-11-11 20:59 ApiDemos.apk
看到了吧,这个HelloAndorid.apk就是刚刚通过那个adb install装上的了。
直接手工删除即可。
#rm HelloAndroid.apk  [回车]
好了,这下子再在模拟器的Application里面就看不到HelloAndroid了。
#exit  [回车]
退出android的shell连接。至于模拟器关闭,直接alt+f4即可。
到此,基本的linux环境下的Android建立到删除的全过程展示完毕。希望对感兴趣的朋友有用。
命令行模式下的单步调试,等有时间再说。。。
阅读(6743) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~