zoukankan      html  css  js  c++  java
  • [编译] 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 疑难杂症

  • 相关阅读:
    ZOJ1450 BZOJ1136 BZOJ1137 HDU3932[最小圆覆盖]
    POJ 1755 Triathlon [半平面交 线性规划]
    POJ 3384 Feng Shui [半平面交]
    POJ 3525 Most Distant Point from the Sea [半平面交 二分]
    POJ 1279 Art Gallery [半平面交]
    POJ3335 POJ3130 POJ1474 [半平面交]
    POJ 3608 Bridge Across Islands [旋转卡壳]
    nginx访问量统计
    PV UV QPS 并发数
    PV、UV、IP之间的区别与联系
  • 原文地址:https://www.cnblogs.com/zjutlitao/p/12723855.html
Copyright © 2011-2022 走看看