用命令行来构建Android项目

1.Android的工程结构和准备

android的工程结构只是一种约定俗成的结构并没有严格的规范,特定的ide有特定的结构,从而符合ide的工具链,下面是一个典型的Android Studio工程结构

new-structure
├─ library-foobar
├─ app
│  ├─ libs
│  ├─ src
│  │  ├─ androidTest
│  │  │  └─ java
│  │  │     └─ com/futurice/project
│  │  └─ main
│  │     ├─ java
│  │     │  └─ com/futurice/project
│  │     ├─ res
│  │     └─ AndroidManifest.xml
│  ├─ build.gradle
│  └─ proguard-rules.pro
├─ build.gradle
└─ settings.gradle

在我的实践中,只会保留必不可少的结构,忽略掉那些脚本等等。

Android项目里面的必不可少的文件解构:

源码文件夹:这里的源码文件夹下面必须有符合android规范的包,这篇文章把这个文件夹称作src,下面的包定义为com/mycompany/package1

库文件夹:java代码所引用的库文件,这里定义为lib

资源文件夹:资源文件夹下面得文件结构必须符合android规范,要包含value等文件夹

AndroidManifest.xml:这个文件用来描述android app的特性,比如入口activity,sdk版本信息等等

其他的准备:

    需要下载sdk,注意sdk里面应该包括platform,platform-tools,build-tools,在构建的时候,platform和build-tools的版本要一致

    需要准备jdk,jdk需要和sdk的版本保持一致,jdk和sdk的版本关系如下:

总结一下准备工作:

开发环境mac,android sdk:android-24,jdk:jdk7

一些变量(下面得脚本都是用这些变量)

ANDROID_HOME : sdk的目录

JDK_HOME :jdk的目录

DEV_HOME : 工程根目录

项目结构:

DEV_HOME/src/com/mycompany/package1/HelloAndroid.java

                 res/layout

                      values

                      drawable

                 lib

                 obj  //保存编译后的产物

                 AndroidManifest.xml

 

2.操作步骤

2.1创建相关文件文件夹,创建ANDROID_HOME等变量

2.2编写HelloAndroid.java代码,一份示例代码如下

package com.mycompany.package1;

import android.app.Activity;
import android.content.res.Resources;
import android.os.Bundle;
import android.widget.TextView;

public class HelloAndroid extends Activity {

  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    TextView textView = new TextView(this);

    String text = getResources().getString(R.string.helloText);
    textView.setText(text);

    setContentView(textView);
  }
}

2.3生成R文件

    R文件保存了所有资源的索引(实际上是给每个资源文件一个id)

$ANDROID_HOME/build-tools/24.0.0/aapt package -v -f -m -S $DEV_HOME/res -J   $DEV_HOME/src -M $DEV_HOME/AndroidManifest.xml -I $ANDROID_HOME/platforms/android-24/android.jar

可以看出这里用的是aapt这个工具

2.4编译java代码

$JDK_HOME/javac -verbose -d $DEV_HOME/obj -classpath $ANDROID_HOME/platforms/android-23/android.jar:$DEV_HOME/obj -sourcepath $DEV_HOME/src $DEV_HOME/src/com/mycompany/package1/*.java

2.5生成dex文件

$ANDROID_HOME/build-tools/24.0.0/dx --dex --verbose --output=$DEV_HOME/bin/classes.dex $DEV_HOME/obj $DEV_HOME/lib

2.6生成apk文件

$ANDROID_HOME/build-tools/24.0.0/aapt package -v -f -M $DEV_HOME/AndroidManifest.xml -S $DEV_HOME/res -I $ANDROID_HOME/platforms/android-24/android.jar -F $DEV_HOME/bin/work.unsigned.apk $DEV_HOME/bin

2.7给apk文件签名

这里要分为两步,先生成证书,然后用证书给apk文件签名

    生成证书:JAVA_HOME/bin/keytool  -genkeypair -validity 10000 -dname "CN=company name,OU=organisational unit,O=organisation, L=location,S=state,C=country code" -keystore DEV_HOME/work.keystore -storepass password -keypass password -alias work -keyalg RSA -v

    签名:$JDK_HOME/jarsigner -verbose -keystore $DEV_HOME/work.keystore -storepass password -keypass password -signedjar $DEV_HOME/bin/work.signed.apk $DEV_HOME/bin/work.unsigned.apk work

2.8压缩apk文件

$ANDROID_HOME/build-tools/24.0.0/zipalign -v -f 4 $DEV_HOME/bin/work.signed.apk $DEV_HOME/bin/work.apk

2.9向模拟器上安装apk文件

这里使用adb工具向模拟器安装文件,模拟器可以是用android的工具生成的,也可以是android手机连到电脑上开启usb调试,这里推荐第二种,因为第一种很慢,容易出错

$ANDROID_HOME/platform-tools/adb -d install $DEV_HOME/bin/work.apk

执行上面那一行代码的时候务必保证电脑上有android设备连着

 

 

然后就能看到app运行了

 

转载于:https://my.oschina.net/lovezfy/blog/768359

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值