編輯:關於android開發
本文為原創文章,轉載請注明出處。
本文主要推薦給由Eclipse開發轉向使用Android Studio(以下簡稱:AS)的開發者,介紹AS最基本以及最常用的功能,老司機請繞道哦O(∩_∩)O,以免耽誤寶貴的時間。
主要內容:
(1)環境搭建
(2)新建項目(含Module創建)
(3)代碼混淆
(4)常用調試功能及應用分析相關
(5)打包APK
一、環境搭建(Windows)
(1)安裝JDK,下載地址,注意AS要求JDK7及更高版本,安裝過程不再贅述;
(2)AS下載,如果因特殊原因不能官網下載,請移步這裡下載;
(3)AS安裝
1.注意選擇自己合適的安裝位置,如下圖:
2.順利的話一步一步安裝成功,出現以下界面:
3.首次運行配置
4.順利的話就可以進入AS啟動頁面了,如果出現Android SDK下載失敗,請移步這位朋友寫的處理方法進行處理。
二、新建項目(含Module創建)
(1)創建項目
進入AS,左上角單擊File->New->New Project,如下:
進入以下界面:
下一步:
下一步:
下一步:
完成。
(2)主界面介紹
(3)預覽
(4)創建Module
對於中大型項目AS提供了Module(即模塊),主要便於項目分層以及分離邏輯,使項目邏輯更加清晰也便於項目維護。創建模塊如下:
進入以下頁面:
進入下一步,完成創建後如下:
關於Module的創建及使用可以參考我的另一篇文章。
二、代碼混淆
AS項目由Gradle構建及管理項目,應用相關的很多信息都可以在這裡設置,如下:
AS中進行代碼混淆需要在build.gradle文件和proguard-rules.pro文件中進行設置(可以通過jd-gui工具對比混淆前後效果):
(1)build.gradle文件
minifyEnabled:表示是否開啟混淆,默認為false
proguardFiles:混淆配置文件,一般就采用項目中默認的proguard-rules.pro文件。
(2)proguard-rules.pro文件
混淆設置,具體可參考progurad官網。
注意圖中紅框部分,因為所有jar包(此處已JAR包混淆舉例,APP混淆與此類似)都要求有對外接口(沒有對外接口的模塊一般也沒什麼意義),有多種種方式設置對外接口類:
a:-keep public class *,例如:
-keep public class * {
public protected *;
}
b:如上圖所示。
因為一個模塊一般有很多類文件,混淆時我們希望除對外接口類的其他所有類文件的類名也進行混淆,那麼就可以單獨創建一個基類或接口,讓對外的接口類繼承該基類或接口。
c:-keep public class XXX,特定類不混淆,例如:
-keep public class xiaoshubao.player.UserLogin{
public protected *;
}
四、常用調試功能及應用分析相關
(1)創建模擬器(創建過程省略)
(2)運行模擬器
(3)應用分析相關
1.日志輸出,如上圖所示。
2.內存分析
a:
b:
c:
d:內存信息采集
e:使用MemoryAnalyzer(MAT)分析內存洩露
首先,直接將上一步生成的hprof文件導入MAT工具中是無法使用的,需要進行轉換,有兩種方式可以實現轉換:
將Snapshot_2016.07.20_21.52.57.hprof文件拷貝至e:/1/文件夾下,cmd到hprof-conv.exe目錄下並執行轉換命令,如下:
生成目標3.hprof文件,如下:
MAT中導入轉換後的hprof文件,如下所示:
CPU、GPU等選項卡就不再贅述了,大家可以自己研究。
五、打包APK
Build->Generate Signed APK
出現以下界面:
(1)創建新的JKS簽名文件,如下:
(2)選擇現有的JKS文件
(3)我們這裡演示創建新的JKS簽名文件,如下:
點擊OK,出現如下界面:
點擊Next,如下:
點擊Finish,成功生成帶我們自己簽名的APK文件:
以後APP新版本發布時就可以使用剛才生成的JKS文件進行簽名,注意同一APP新版本的簽名文件必須與舊版本的簽名文件為同一個,多個APP可以共用同一個簽名文件,原因就不多說了。
總結,本文主要講解使用AS創建項目、調試項目、發布的最基本使用,隨著熟悉程度的提高大家都可以自己深入研究,比如Gradle構建、內存分析等等。
Android SDK目錄及版本號區別 今天又有人問Tools,Build-Tools,Platform-tools有什麼區別,是干嘛的? 現在對SDK目錄做一下總結闡述
Android開發實踐:Android.mk模板 關於Android NDK開發的文章已經比較多了,我的博客中也分享了很多NDK開發相關經驗和技巧,今天簡單寫了一個 An
Linux系統中的知名內核線程(1)——ksoftirqd和eventsLinux系統中的知名內核線程(1)——ksoftirqd和events——lvyilong316
Android中使用Notification實現進度通知欄(示例三),notification進度條我們在使用APP的過程中,軟件會偶爾提示我們進行版本更新,我們點擊確認