關于Android構建

“IDE都是給小白程序員的,大牛級別的程序員一定是命令行控,終端控,你看大牛都是使用vim,emacs 就一切搞定”

這話說的雖然有些絕對,但是也不無道理,做開發這行要想效率高,自動化還真是缺少不了命令行工具,因為只有命令行才是最佳的人機交互工具。其實 IDE也是底層也是調用命令行工具而已,只不過給普通開發者呈現一個更友好的開發界面。這里可不是宣揚讓大家放棄IDE都改命令行,只是每種事物都有他存 在的理由,無論是編程語言還是工具都是一個原則 “沒有最好的,只有最合適的”。

發布產品的時候為了統計各渠道流量免不了要構建不通的渠道包,你懂得國內渠道上 百個,靠IDE編譯打包非吐血不可。這些重復勞動最適合交個程序來做,很多程序員想不明白這個問題,寧愿把大量的精力時間花在業務上,卻不知道用工具提高工作效率。在這里寫一篇簡單的教程,告訴大家怎么脫離IDE環境完成一個android項目的編譯構建,有了這基礎開發什么自動化構建工具都不是什么難事了, 前一陣子做的一個打包html5應用的在線工具AppBuilder就是基于命令行構建完成的。

說到命令行自然是不需要圖形界面,所以Android SDK的安裝下載自然都是在終端上進行。下面是本文中使用的一些SDK和基本環境。

  • ubuntu server 14.04 (64位)
  • JDK 1.7
  • android-sdk_r24.0
  • gradle-2.2.1

進入正題,接下來一步一步介紹如何安裝配置一個命令行下的編譯構建系統.

step 1 安裝 JDK 環境

配合android的JDK最好選用JDK官方版本而不是Open JDK,下面是在unbuntu下安裝JDK 1.7的方法。

sudo?add-apt-repository ppa:webupd8team/java
sudo?apt-get update
sudo?apt-get install?oracle-java7-installer

step 2 安裝 Android SDK

android sdk 工具包的一些命令行工具是基于32位系統的,在64為平臺運行32程序必須安裝 i386 的一些依賴庫,方法如下:

sudo?dpkg --add-architecture i386
sudo?apt-get update
sudo?apt-get install?libc6:i386 libncurses5:i386 libstdc++6:i386 lib32z1

安裝完成32位的依賴庫后,我們使用wget 去官方下載最新的linux下android SDK包。

cd?~
wget http://dl.google.com/android/android-sdk_r24.0.1-linux.tgz
tar?xvzf android-sdk_r24.0.1-linux.tgz

編輯 .profile 或者 .bash_profile 把下面的目錄增加到 path的搜索路徑中,確保android SDK的的一些命令工具可以直接在終端使用,比如 adb 命令。

ANDROID_HOME=$HOME/android-sdk-linux
export?PATH="$PATH:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools"
exprot ANDROID_HOME

使環境變量生效

source?~/.profile

環境變量生效后,你可以使用android命令 列出sdk相關的列表,以便我們選擇和自己項目匹配的SDK版本。(剛才只是安裝了最基礎的SDK,要完全滿足你的開發環境需要還得從下面的列表中選擇你需要的SDK和工具更新下載)

android list sdk --all

輸出如下所示:

1- Android SDK Tools, revision 24.0.1
?2- Android SDK Platform-tools, revision 21
?3- Android SDK Build-tools, revision 21.1.2
?4- Android SDK Build-tools, revision 21.1.1
?5- Android SDK Build-tools, revision 21.1
?6- Android SDK Build-tools, revision 21.0.2
?7- Android SDK Build-tools, revision 21.0.1
?8- Android SDK Build-tools, revision 21
?9- Android SDK Build-tools, revision 20
10- Android SDK Build-tools, revision 19.1
11- Android SDK Build-tools, revision 19.0.3
12- Android SDK Build-tools, revision 19.0.2
13- Android SDK Build-tools, revision 19.0.1
14- Android SDK Build-tools, revision 19
15- Android SDK Build-tools, revision 18.1.1
16- Android SDK Build-tools, revision 18.1
17- Android SDK Build-tools, revision 18.0.1
18- Android SDK Build-tools, revision 17
19- Documentation for?Android SDK, API 21, revision 1
20- SDK Platform Android 5.0.1, API 21, revision 2
21- SDK Platform Android 4.4W.2, API 20, revision 2
22- SDK Platform Android 4.4.2, API 19, revision 4
23- SDK Platform Android 4.3.1, API 18, revision 3
24- SDK Platform Android 4.2.2, API 17, revision 3
....

這里包括不同的Android API 版本和不同的構建工具,選擇你想要安裝項目的序號,這里我想安裝 build tools 19.1 ,build tools 21 及 android 4.2.2以上的SDK所以選擇序號 “1,2,3,20,21,22,23”

android update sdk -u -a -t? 1,2,3,10,20,21,22,23

step 3 安裝gradle構建環境

使用Ant構建項目已經是過去式了,這里我們選用更加強悍和方便的構建工具gradle 。

下載 grdle 二進制包

cd?~
wget https://services.gradle.org/distributions/gradle-2.2.1-bin.zip

釋放到本地Home目錄,創建名字為”gradle”的符號鏈接,符號連接的好處是方便版本更新,有了新的版本直接修改符號鏈接即可。

unzip gradle-2.2.1-bin.zip
ln?-s gradle-2.2.1 gradle

配置gradle環境變量并使其生效,編輯 ~/.profje 文件增加下面內容

GRADLE_HOME=$HOME/gradle
export?PATH=$PATH:$GRADLE_HOME/bin

保存后使環境變量使其生效

source?~/.profile

環境變量生效后你可以在終端敲入’gradle’命令并運行用以檢測gradle是否安裝成功。

gradle

如果安裝配置的沒有問題將會提示類似下面的信息

:help
Welcome to Gradle 2.2.1
To run a build, run gradle <task> ...
To see a list of available tasks, run gradle tasks
To see a list of command-line options, run gradle --help
BUILD SUCCESSFUL

驗證是否可以編譯android 應用

完成以上的環境配置,我們的一個Android下的基礎構建環境就全部配置好了,接下來做的事情就是嘗試使用gradle 編譯一個android 應用出來驗證我的編譯環境是否OK,下載我寫的一個gadle demo 例子進行測試。

git clone https://github.com/examplecode/gradle_demo
cd?gradle_demo/hello-apk-with-gradle
gradle build

一切順利的話,編譯完成后,你會在 “hello-apk-with-gradle/build/outputs/apk” 目錄下找到編譯好的apk包。至于如何整合到你自己的項目中去,只需要仿照例子給你的項目提供一個”gradle.build” 腳本即可。



本文轉自 念槐聚 博客園博客,原文鏈接:http://www.cnblogs.com/haochuang/p/4648208.html,如需轉載請自行聯系原作者

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/540011.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/540011.shtml
英文地址,請注明出處:http://en.pswp.cn/news/540011.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

普元EOS開發學習(二)

1、QueryFormQueryForm控件是一個用來輸入查詢條件的表單&#xff0c;作為一個代碼片斷&#xff0c;以<h:form></h:form>形式嵌入在JSP頁面中。表單提交時&#xff0c;根據控件生成時設置的邏輯&#xff0c;可以對指定數據集進行有條件查詢&#xff0c;同時可以根據…

java map class_Java:聲明一個包含兩個相關泛型類型的Map(Map,Class ?extends ClassB )...

另一種方法是提供自己的Map實現.如果擴展現有實現并使用新類型,則不需要太多代碼&#xff1a;public class CompatibleHashMap extends HashMap, ClassB> {}現在,一個CompatibleHashMap< String>只允許你把ClassA< String>作為鍵和ClassB< String>作為價值…

centos 6 安裝zabbix 3.0

1.安裝PHP Zabbix 3.0對PHP的要求最低為5.4&#xff0c;而CentOS6默認為5.3.3&#xff0c;完全不滿足要求&#xff0c;故需要利用第三方源&#xff0c;將PHP升級到5.4以上&#xff0c;注意&#xff0c;不支持PHP7 rpm -ivh http://repo.webtatic.com/yum/el6/latest.rpm yum in…

普元EOS開發學習(一)

警惕EOS的拖圖元開發導致技術退步&#xff0c;請閱博主《用了2年EOS后的感受》 --------------- EOS開發和原有的JAVA開發有很大的不同&#xff0c;在開發的過程中&#xff0c;只能看到JSP頁面的源代碼&#xff0c;如果想要了解到操作類型的代碼&#xff0c;那么你只能看到XML…

java 共享鎖 獨占鎖_java中的公平鎖、非公平鎖、可重入鎖、遞歸鎖、自旋鎖、獨占鎖和共享鎖...

一、公平鎖與非公平鎖1.1 概述公平鎖&#xff1a;是指多個線程按照申請鎖的順序來獲取鎖。非公平鎖&#xff1a;是指在多線程獲取鎖的順序并不是按照申請鎖的順序&#xff0c;有可能后申請的線程比先申請的線程優先獲取到鎖&#xff0c;在高并發的情況下&#xff0c;有可能造成…

GoogleNet網絡分析與demo實例

參考自 up主的b站鏈接&#xff1a;霹靂吧啦Wz的個人空間-霹靂吧啦Wz個人主頁-嗶哩嗶哩視頻這位大佬的博客 Fun_機器學習,pytorch圖像分類,工具箱-CSDN博客 1. GoogLeNet網絡詳解 GoogLeNet在2014年由Google團隊提出&#xff08;與VGG網絡同年&#xff0c;注意GoogLeNet中的L大…

解決win10安卓虛擬機每十幾分鐘藍屏重啟問題

2012年第一次接觸android&#xff0c;它的虛擬機是很慢的&#xff0c;如今Intel HAXM 技術為 Android 模擬器加速&#xff0c; 使模擬器運行度媲美真機&#xff0c; 徹底解決模擬器運行慢的問題。問題也是由它而來&#xff0c;因為驅動和系統不兼容造成的。 CPU必須I3及I3以上才…

pg_resetxlog清理的pg_xlog下的WAL日志

PostgreSQL的pg_xlog下有大量日志&#xff0c;空間不足&#xff0c;如何刪除&#xff1f; Darren1:postgres:/usr/local/pgsql/data/pg_xlog:>ls 000000010000000000000008.00000028.backup 00000001000000000000009D 0000000100000000000000C9 0000000100000000000000F5…

mysql備份:一,Xtrabackup

資料來自于馬哥 注明&#xff1a;此工具不能備份出sql語句。另外只能適用innodb存儲引擎。 一、安裝 1、簡介 Xtrabackup是由percona提供的mysql數據庫備份工具&#xff0c;據官方介紹&#xff0c;這也是世界上惟一一款開源的能夠對innodb和xtradb數據庫進行熱備的工具。特點&…

51服務的開啟方式

服務開啟方式的知識點見博文&#xff1a;http://blog.csdn.net/zengmingen/article/details/49425161步驟&#xff1a; 1、新建Android項目名“51服務的開啟方式” 2、新建一個類 MyService&#xff0c;繼承 Service 3、在清單文件里配置第二步建的service 4、在Myservice類中覆…

java mysql 存儲圖片_Java存儲圖片到Mysql

該樓層疑似違規已被系統折疊 隱藏此樓查看此樓【1】視圖層action"${ctx}/web/UserInforServlet?methoduserInforServlet" >更換頭像立即提交重置var layer,upload,form;//1-頁面數據加載$(function () {//【1】加載&初始化layui模塊-彈出層與table數據表格la…

JavaWeb應用配置文件安全解決方案

這里主要說說JavaWeb應用的配置文件安全&#xff0c;通常JavaWeb應用多多少少會有一些配置文件&#xff0c;其中數據源的配置則是關系到數據庫的安全&#xff0c;另外還有一些基于文件的權限配置&#xff0c;應用程序的一些系統參數。鑒于這樣的情況&#xff0c;如果配置文件被…

java 免費cms_開源 免費 java CMS

Bug修復:1.菜單管理&#xff1a;刪除操作按鈕后不能直接進行刪除菜單操作。2.刪除單位時操作記錄不顯示單位名稱問題。3.站點管理&#xff1a;改變所屬站點增加改變為一級站點功能&#xff0c;上傳非圖片logo時雖然提示但仍上傳成功問題。4.模板文件管理&#xff1a;點擊查看/下…

Android加載大圖片不OutOfMemoryError

Android加載圖片時&#xff0c;對于分辨率小&#xff0c;配置低的機子&#xff0c;很容易發生OutOfMemoryError。手機的內存比圖片的大很多&#xff0c;怎么會這樣&#xff1f; 在設置Android虛擬機的內存時&#xff1a; RAM&#xff1a;模擬器的內存空間 VM Heap&#xff1a;…

任務計劃、chkconfig工具、systemd管理服務、unit、target

比如備份數據或者重啟服務。 crontab -u、-e、-l、-r&#xff08;刪除&#xff09; 格式&#xff1a;分 時 日 月 周 user command 文件/var/spool/cron/username 分范圍0-59&#xff0c;時范圍0-23&#xff0c;日范圍1-31&#xff0c;月范圍1-12&#xff0c;周1-7 可用格式1-5…

vue打卡日歷_Vue日歷

new Vue({el: ‘#calendar‘,data: {currentDay: 1,currentMonth: 1,currentYear: 1970,currentWeek: 1,days: [],addDay: [],},created: function() {this.initData(null);var $this this;//請求數據$.ajax({url: "這里填接口名稱",type: "POST",data: {…

android Intent機制詳解

原文出處&#xff1a;http://blog.csdn.net/t12x3456/article/details/7688154 什么是Intent Intent是一種運行時綁定&#xff08;run-time binding&#xff09;機制&#xff0c;它能在程序運行過程中連接兩個不同的組件。通過Intent&#xff0c;你的程序可以向Android表達某種…

python基本數據類型(四)-集合與運算符-python3筆記

1.集合 2.字典 3.運算符優先級 1.集合 創建&#xff1a;() set() 注意&#xff1a;創建空的集合要用set() 特點&#xff1a;元素唯一&#xff0c;無序 運算&#xff1a; &&#xff08;交集&#xff09; |&#xff08;并集&#xff09; -&#xff08;差集&#xff0…

Android的權限

Android有四種權限&#xff1a; 1、Permission 權限 2、Root權限 3、Bootloader的解鎖 4、Radio(基帶)解鎖 ------------------------------------ 1、Permission 我們在開發中經常使用到 Permission 權限&#xff0c;即一系列"Android.Permission.*"對象。…

hive2 java連接_用Java代碼通過JDBC連接Hiveserver2

1.在終端啟動hiveserver2#hiveserver22.使用beeline連接hive另外打開一個終端&#xff0c;輸入如下命令(xavierdb必須是已經存在的數據庫)#beeline -u jdbc:hive2://localhost:10000/xavierdb -n hive -p hive3.添加maven依賴org.apache.hivehive-jdbc1.1.0junitjunit4.9org.ap…