Android应用开发之快速开始

本文假定已下载并配置好android tools和gradle

查看所有android build target,如果有必要下载新的

使用如下命令查看targets:

~$ android list target

输出结果如下:

Available Android targets:
----------
id: 1 or "android-15"
     Name: Android 4.0.3
     Type: Platform
     API level: 15
     Revision: 5
     Skins: HVGA, QVGA, WQVGA400, WQVGA432, WSVGA, WVGA800 (default), WVGA854, WXGA720, WXGA800
 Tag/ABIs : no ABIs.
----------
id: 2 or "android-19"
     Name: Android 4.4.2
     Type: Platform
     API level: 19
     Revision: 4
     Skins: HVGA, QVGA, WQVGA400, WQVGA432, WSVGA, WVGA800 (default), WVGA854, WXGA720, WXGA800, WXGA800-7in
 Tag/ABIs : no ABIs.
----------
id: 3 or "android-20"
     Name: Android 4.4W.2
     Type: Platform
     API level: 20
     Revision: 2
     Skins: HVGA, QVGA, WQVGA400, WQVGA432, WSVGA, WVGA800 (default), WVGA854, WXGA720, WXGA800, WXGA800-7in
 Tag/ABIs : no ABIs.
----------
id: 4 or "android-21"
     Name: Android 5.0.1
     Type: Platform
     API level: 21
     Revision: 2
     Skins: HVGA, QVGA, WQVGA400, WQVGA432, WSVGA, WVGA800 (default), WVGA854, WXGA720, WXGA800, WXGA800-7in
 Tag/ABIs : default/armeabi-v7a
----------
id: 5 or "android-22"
     Name: Android 5.1.1
     Type: Platform
     API level: 22
     Revision: 2
     Skins: HVGA, QVGA, WQVGA400, WQVGA432, WSVGA, WVGA800 (default), WVGA854, WXGA720, WXGA800, WXGA800-7in
 Tag/ABIs : no ABIs.
----------
id: 6 or "Google Inc.:Google APIs:21"
     Name: Google APIs
     Type: Add-On
     Vendor: Google Inc.
     Revision: 1
     Description: Android + Google APIs
     Based on Android 5.0.1 (API level 21)
     Libraries:
      * com.android.future.usb.accessory (usb.jar)
          API for USB Accessories
      * com.google.android.media.effects (effects.jar)
          Collection of video effects
      * com.google.android.maps (maps.jar)
          API for Google Maps
     Skins: HVGA, QVGA, WQVGA400, WQVGA432, WSVGA, WVGA800 (default), WVGA854, WXGA720, WXGA800, WXGA800-7in
 Tag/ABIs : google_apis/x86

targets代表了编译android项目代码,以及生成应用包目标运行环境。我们这里主要看type为“platform”的target。下面对target中的各个字段进行解释:

id: 区别target的唯一标识,创建android应用项目时需要指定,当然在开发过程中也可以随时更改,所以如果指定错误也不用担心。至于如何指定和更改,后文会做详细介绍。id的值可以是一个整数也可以是一个字符串,这个可根据自己的习惯来选择使用。

Name: 当前的target的描述性名称,对于type为platform的target来说,一般是“Android ”的格式。

Type: 代表当前target的类型,常见的有“Platform”, “Add-On”等。

API Level: 这个比较重要,它代表当前target的对应的运行环境的api level,虽然最终的应用可能运行在其他的level环境,但当前选定的target api level一般代表的最佳的运行环境。另外,一般来说它也是编译和测试的对应的主要api level。

Revision: 代表当前target的修订版本。

Skins: 代表当前target包含的针对一些屏幕分辨率的皮肤资源,这些皮肤资源并不是给应用运行用的,而是给android avd用的。这些资源的存放路径为:/platforms/android-/skins。比如我们创建屏幕分辨率为WVGA800的avd,然后将对应的skins目录下的button.png和key.png互换,运行时的效果如下:
这里写图片描述
这里写图片描述

关于各个分辨率的对应关系如下:

名称分辨率
QVGA240 * 320
WQVGA400240 * 400
WQVGA432240 * 432
FWQVGA240 * 432
HVGA320 * 480
WVGA800480 * 800
WVGA854480 * 854
FWVGA480 * 854
WXGA1280 * 800

Tag/ABIs: 代表当前target的对应的具有特定abi的系统镜像,需要通过android sdk manager 单独下载,这是创建avd必须的。如下图中的System image即为各个ABIs:
这里写图片描述

如果如上列表中并没有自己想要的版本,可以通过如下命令打开android sdk manager下载新的:

~$ android

创建应用

在合适的位置创建一个项目根目录并cd到该目录下,这里假定是”LearnStartup”。然后执行如下命令创建项目:

android create project -k com.zhanglong.test -p . -n LearnStartup -a MainActivity -g -v 2.3 -t 5

各个参数以及其他参数解释如下:

       Usage:
       android [global options] create project [action options]
       Global options:
  -s --silent     : Silent mode, shows errors only.
  -v --verbose    : Verbose mode, shows errors, warnings and all messages.
     --clear-cache: Clear the SDK Manager repository manifest cache.
  -h --help       : Help on a specific command.

                         Action "create project":
  Creates a new Android project.
Options:
  -n --name          : Project name.
  -a --activity      : Name of the default Activity that is created.
                       [required]
  -k --package       : Android package name for the application. [required]
  -v --gradle-version: Gradle Android plugin version.
  -t --target        : Target ID of the new project. [required]
  -g --gradle        : Use gradle template.
  -p --path          : The new project's directory. [required]

执行成功后生成的目录文件结构如下:

    LearnStartup
   ├── build.gradle
   ├── gradle
   │   └── wrapper
   │       ├── gradle-wrapper.jar
   │       └── gradle-wrapper.properties
   ├── gradlew
   ├── gradlew.bat
   ├── local.properties
   └── src
       ├── androidTest
       │   └── java
       │       └── com
       │           └── zhanglong
       │               └── test
       │                   └── MainActivityTest.java
       └── main
           ├── AndroidManifest.xml
           ├── java
           │   └── com
           │       └── zhanglong
           │           └── test
           │               └── MainActivity.java
           └── res
               ├── drawable-hdpi
               │   └── ic_launcher.png
               ├── drawable-ldpi
               │   └── ic_launcher.png
               ├── drawable-mdpi
               │   └── ic_launcher.png
               ├── drawable-xhdpi
               │   └── ic_launcher.png
               ├── layout
               │   └── main.xml
               └── values
                   └── strings.xml

各个重点的目录和文件介绍如下:
build.gradle文件: 这个是真个项目的gradle编译脚本,是必须的。

gradle目录:这个是gradle脚本执行时自身需要的一些缓存,非必须。

gradlew文件和gradlew.bat文件:分别对应于类linux系统和windows系统的对于gradle软件的一个简单封装,这两个命令会根据需要自动下载必要的gradle软件,并且可以接收对应参数执行项目的编译。所以对于不像手动安装gradle的开发组来说,这两个命令可以简化gradle环境配置。非必须。

local.properties: 这个保存了本地环境的一些关于android sdk的配置信息,注意,这个文件不应该加入到版本控制中。如果没有或者删除该文件,那么需要配置ANDROID_HOME环境变量才能工作。

src目录:项目的主题源代码。

这里因为我们只使用本地自己安装的gradle,所以删除”gradle”,gradlew,gradlew.bat,实际生产环境中建议保留。

这个命令已经为我们生了一个类似”hello world”的界面,整个project实际上已经是个可编译运行的项目。

build并运行debug版

在项目的根目录(即build.gradle文件所在的目录)下执行如下gradle命令:

~$ gradle build

该命令会根据需要自动下载依赖的包,并执行编译和打包,并将生成的结果放到build目录下。如果build目录不存在,会自动创建。

build目录下outputs目录存放apk文件,lint结果等。

如果没有修改过“~/.android/debug.keystore”文件,那么此命令生成的apk几位debug版,可通过如下命令安装(假定手机已经连接上电脑):

~$ gradle installDebug

执行完后,应用安装成功,可以再手机或模拟器中打开。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值