[編譯] 7、在Linux下搭建安卓APP的開發燒寫環境(makefile版-gradle版)—— 在Linux上用命令行+VIM開發安卓APP

April 18, 2020 6:54 AM - BEAUTIFULZZZZ


.

0 前言

在上上篇《[編譯] 5、在Linux下搭建安卓APP的開發燒寫環境(makefile版)—— 在Linux上用命令行+VIM開發安卓APP》中我寫了一個基於VIM(記事本)開發安卓APP的介紹,並且用類似的方法開源了很多小DEMO:

  • [01] HelloAndroid: hello world demo
  • [02] BluetoorhScan: bluetooth scan + surface(canvas) + handler + bundle
  • [03] FlyGame: surface(canvas) + fly game demo
  • [04] ListView: ListView DIY demo
  • [05] GridView: GridView DIY demo
  • [06] TuyaMeshTest: ble scan(fast scan) + textview
  • [07] SmartStepCounter: bluetooth scan connect read + line chart
  • [08] SmartFan: bluetooth scan connect write

GitHub:https://github.com/nbtool/android_app_linux_tool

但是隨着工程越來越複雜,採用java、aapt去操作使全自動run.sh腳本越來越難寫(特別是有些lib庫很難找準,有些lib除了庫之外還有資源文件,就更復雜了),因此,這裏引入一個更先進的工具:gradle。

本文主要介紹gradle的安裝、命令行的用法、給出一個基於gradle的全自動腳本run.sh,以及一個小DEMO(這裏的全自動是:全自動構建安卓開發環境,全自動編譯安裝運行到設備)


1 gradle 安裝配置

1.1 卸載系統默認裝的gradle

sudo pacman -R gradle

.

1.2 下載對應版本的二進制文件

gradle所有版本的下載地址:https://gradle.org/releases/

➜  Downloads wget https://downloads.gradle-dn.com/distributions/gradle-2.14.1-bin.zip
➜  Downloads unzip gradle-2.14.1-bin.zip
➜  Downloads cd gradle-2.14.1 
➜  gradle-2.14.1 pwd
/home/btfz/Downloads/gradle-2.14.1

.

1.3 配置gradle:

注:看文件夾下的getting-started.html文件

export GRADLE_HOME=/home/btfz/Downloads/gradle-2.14.1
export PATH=$PATH:$GRADLE_HOME/bin

.

1.4 檢查配置

在工程根目錄的 SDK Location 配置文件local.properties中:
sdk.dir=D\:\\develop\\AndroidSDK改爲自己系統正確的樣子:sdk.dir=/home/btfz/Android/Sdk

在工程根目錄的 Project 配置文件build.gradle中:(暫不需要修改)

在工程根目錄向裏進一層的目錄的 Module 配置文件build.gradle中:
將諸如SDK和編譯工具的版本寫成對應的版本:

android {
    compileSdkVersion 28
    buildToolsVersion "28.0.3"

對應關係如下:

.

1.5 gradle 命令行操作

gradle -v 查看當前gradle版本
gradle clean 將會去下載gradle的一些依賴包
gradle build 編譯生成apk

注:有時候直接用build打包會報錯,因爲要配置一些打包相關的東西,如果調試用,可以先用:gradle assembleDebug 編譯並打Debug包,不要用gradle assembleRelease 編譯並打Release的包(後續會寫爲什麼用build和打release不行)。


2 全自動腳本編寫

2.1 自動構建安卓開發環境

判斷是否有android SDK,如果沒有,則下載一個android SDK;
下載好android SDK後,可以利用其中的SDKMANAGER工具,安裝platforms和build-tools(這兩個有很多個版本,找到適合自己的);
判斷對應版本的gradle是否存在,如果不存在,則從遠端下載對應版本;

function tool(){
    #export JAVA_OPTS='-XX:+IgnoreUnrecognizedVMOptions --add-modules java.se.ee'

    if [ ! -d $ANDROID_SDK_PATH ]; then 
        #download tool
        echo "> download tool...."
        wget https://dl.google.com/android/repository/sdk-tools-linux-3859397.zip
        mkdir -p $ANDROID_SDK_PATH
        unzip sdk-tools-linux-3859397.zip -d $ANDROID_SDK_PATH
        rm -rf sdk-tools-linux-3859397.zip
        sudo chmod 777 -R $ANDROID_SDK_PATH
    fi

    #install sdk build-tools platform
    echo "> install sdk build-tools platform...."
    echo $SDKMANAGER
    $SDKMANAGER "platform-tools" "platforms;android-$ANDROID_PLATFORM_VERSION"
    $SDKMANAGER "platform-tools" "build-tools;$ANDROID_BUILD_TOOLS_VERSION" 
    $SDKMANAGER --list

    if [ ! -d $GRADLE_PATH ];then
        #download gredle
        echo "> download gredle..."
        wget https://downloads.gradle-dn.com/distributions/gradle-$GRADLE_VERSION-bin.zip 
        unzip gradle-$GRADLE_VERSION-bin.zip -d $TOOL_PATH
        rm -rf gradle-$GRADLE_VERSION-bin.zip 
    fi
}

.

2.2 編譯、運行、清除

藉助於gradle,實現編譯、清除比較方便,寫入設備還是用adb:

function build(){
    export GRADLE_HOME=$GRADLE_PATH
    export PATH=$PATH:$GRADLE_HOME/bin
    gradle clean
    gradle assembleDebug
}

function clean(){
    echo "Cleaning..."
    rm -rf build
    rm -rf $PROJECT_ROOT/example/$PROJECT_NAME/$MODULE_NAME/build
}

function program(){
	echo "Launching..."
	adb install -r $APK_PATH/*.apk
    adb shell am start -n  com.telink.lt/.ui.AdvDeviceListActivity
}

3 效果展示


: 本項目的github關注起來https://github.com/nbtool/android_app_linux_tool~
大家覺得不錯,可以點推薦給更多人~

[1].Android Studio 命令行Gradle編譯
[[2].BLE_826X_Generic]]#2
[3].21、android studio 疑難雜症

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章