Android 命令行开发入门教程之1
其实,掌握记事本+命令行的编程方式是非常有效的,无论是电脑硬件配置和性能问题的制约,还是对于了解程序内部运行机制、调试等也有很好的帮助。但是很多人因为惧怕或者讨厌使用这种费力的编写习惯也是能够理解的,但这都是表面的现象,后序的工作一样是简单的、可重用的。
其实,掌握记事本+命令行的编程方式是非常有效的,无论是电脑硬件配置和性能问题的制约,还是对于了解程序内部运行机制、调试等也有很好的帮助。但是很多人因为惧怕或者讨厌使用这种费力的编写习惯也是能够理解的,但这都是表面的现象,后序的工作一样是简单的、可重用的。
Chapter 1 Android环境搭建
外部环境
IBM、Windows XP、UBuntu10、1GRAM。
可见虽然Android对于开发、模拟、运行都是有一定要求的,但是在老式的机器上一样可以尝试进行工作,只是在启动模拟器时慢了点,其它的还是说的过去的。如果你不使用模拟器,直接在实际环境中,那就更Fine了。
下载各种SDK
网络有足够多的资源大家可以参考,最主要的就是Android SDK,Java SDK。
网址略。
我使用的是JDK1.7,Android_adt-bundle-win_x86-20140702.zip
【需要注意】从官网下载后,他是一个空壳,没有任何东西,你必须根据自己的需要下载,如果你懒得看是什么,只要硬盘空间允许的话,有什么就下载什么可以。
添加环境变量
使用windows 操作系统,就必须配置很多环境变量,无论是你手工还是自动的。本文档既然是手工开发,打造Hello World,那么就要手工配置,指导为什么要这样。
例如:
ANDROID_HOME =D:\Android\android-sdks 设置sdk包的位置,就是Android SDK根目录,包含tools等文件夹的目录。 例如,我的就是E:\Android_adt-bundle-win_x86-20140702\sdk ANDROID_SDK_HOME =D:\Android\avd 设置的是avd的路径。但是为了与开发工具形式一致,一般默认在用户路径下, 例如我的就是C:\Documents and Settings\Administrator\.android JAVA_HOME = C:\Program Files\Java\jdk1.7.0_05 JavaSE的主目录。如果你是安装版的,可以不用设置。 CLASSPATH =.;%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\lib\dt.jar; classpath环境变量。在开发java程序时需要引用别人写好的类时,要让java解释器知道到哪里去找这个类。通常sun为我们提供了一些额外的丰富的类包,一个是dt.jar,一个是tools.jar,这两个jar包都位于C:\jdk1.6.0\lib目录下,所以通常都会把这两个jar包加到我们的classpath环境变量中。 |
在path追加如下字符串,字串之间用英文分号;分割。 ANT_HOME = 设置Ant工具的位置 PATH=...;(追加)%ANDROID_HOME%\tools; %ANDROID_HOME%\platform-tools; %JAVA_HOME%\bin; %ANT_HOME%\bin;;%CLASSPATH% |
【注意】环境设置后重启电脑才生效。
验证设置是否生效
打开Windows命令行,分别输入如下命令,是否成功不难理解的。
1. >echo % ANDROID_HOME%
2. >Java
3. >Javac
4. > ant
Chapter 2 创建第一个Andoird演示程序
使用命令
为了能够让Android 程序工作,就需要发送不同的命令,这里仅介绍一个Android。
顺带提及,Android的底层就是Linux系统,所以Android相关的东西都有一些Linux的影子,与windows的习惯有点不一样,习惯就好。
来查看你要使用的命令及其参数。很多,这里为了不碍眼和节省篇幅,只列出几个使用到的,其它的类似。
发送命令 >android --help Usage: android [global options] action [action options]
Global options: -h --help Help on a specific command. 帮助系统 Valid actions are composed of a verb and an optional direct object: - list : Lists existing targets or virtual devices. 列出target或虚拟设备 - list avd : Lists existing Android Virtual Devices. 列出avd - list target : Lists existing targets. 列出target - create project : Creates a new Android project. 创建项目 |
列出所有已经存在的target
android list targets
列出所有系统中已经经过下载升级后的SDK包,他们是针对不同的目标机器的。也是开发时你必须指定的内容。
试试就知道。
创建项目
--create project子命令的用法如下:
Action "create project":
Creates a new Android project.
Options:
-n --name 应用程序的名字
-t --target SDK Target ID
-p --path 应用程序的工作目录
-k --package 应用程序的包名
-a --activity 默认创建的Activity的名字
使用如下命令格式创建一个演示程序结构框架。
android create project --target <target-id> --name MyFirstApp \
--path <path-to-workspace>/MyFirstApp --activity MainActivity \
--package com.example.myfirstapp
你需要替换<target-id>为你的目标机器版本号,而<path-to-workspace>是项目的目录位置
例如我创建的命令就是这样写的。
> android create project --target 8--name MyFirstApp \
--path d:/MyFirstApp--activity MainActivity \
--packagecom.example.myfirstapp
也就是说,我在D盘根目录下创建了一个文件夹MyFirstApp作为我的项目位置。
创建结果
你使用上面的命令创建可一个项目后,就会生成一个项目框架。你可以发送windows命令查看:
> tree /F
这些文件的大致位置和功能后面介绍。
运行项目
【暂略】在真实设备中运行
照顾没有或不需要Android手机的开发人员需要,我们采用模拟器方式进行工作,这里就【暂略】。。。
在模拟器设备中运行
Android Virtual Device (AVD)就是一个所说的Android模拟器,对于开发和调试是很方便的。
使用模拟其的另一个好处就是,你可以开发很多种版本的目标机器的程序,通过创建很多模拟器来安装和测试。
构造项目
切换命令行到你项目的根目录下,输入命令:
>antdebug
执行后,最后一行提示信息大致如下,OK。
BUILDSUCCESSFUL
Totaltime: 19 seconds
这里,Android会帮你做很多事情,为了在命令行下进行代码书写,细节你可以忽略。不过你关注一下你的项目目录中,会发现多了一些文件。
创建模拟器
发送命令:>android avd
启动avd管理界面,在这里你点击 New 来创建avd,指定平台target,SD卡大小以及skin (HVGA是默认的)即可。
当然你可以创建多个avd。
Figure 1. TheAVD Manager showing a few virtual devices.
发布程序到虚拟机中
adbinstall bin/MyFirstApp-debug.apk
经过发布后,在模拟器中你就可以看到自己的app应用程序了名字叫 MyFirstActivity 。点击打开后就会看到它的运行效果。
你看到的文字会与我不同,后面会简要补充。
卸载
卸载过程跟实际的手机卸载是一样的。
设置->
补充
项目名称,是在strings.xml中进行配置的。
D:\MyFirstApp\res\values\strings.xml
<resources> <string name="app_name">zuoLuoActivity</string> </resources> |
提示信息:是在main.xml中进行配置的。
D:\MyFirstApp\res\layout\main.xml
<TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Hello World, Zipluo" /> |
本文出自 “骆行” 博客,请务必保留此出处http://cameleradmi.blog.51cto.com/9764705/1593888
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。