編輯:關於Android編程
下載網址:
Android Studio 中文社區:安卓官方開發工具-Android SDK/JDK/Gradle-下載/安裝/升級/教程/漢化
http://android-studio.org/
官網下載:http://tools.android.com/recent
未配置時,出現這條消息:
Error:Invalid Gradle JDK configuration found.
展開File目錄…,進行設置:
File > Project Structure > SDK Location > {
Android SDK Location = D:\android\sdk;
JDK Location = D:\android\jdk\jdk1.8.0_51;
}
2.2 更新Gradle構建工具
2.2.1 在線安裝
從Gradle官網查看最新版本;
Jcenter:
https://jcenter.bintray.com/com/android/tools/build/gradle/
API:
https://docs.gradle.org/current/javadoc/org/gradle/api/package-summary.html
Download:
http://gradle.org/gradle-download/
MyApplication\gradle\wrapper\gradle-wrapper.properties
distributionUrl=https\://services.gradle.org/distributions/gradle-2.4-all.zip
修改為:
distributionUrl=https\://services.gradle.org/distributions/gradle-2.10-all.zip
2.2.2 離線安裝
如:gradle-2.4-all.zip。解壓到AndroidStudio的安裝路徑之內:
D:\Android Studio\gradle\gradle-2.4(之前可能有gradle-2.2.1等)
File > Setting > Build, Execution, Deployment > Build Tools > Gradle {
Project-level settings: {
false = User default gradle wrapper (recommended);
true = Use local gradle distribution {
Gradle home: = D:/Android Studio/gradle/gradle-2.4;
}
}
}
2.3 設置編碼、顯示行號、代碼完成
2.3.1設置編碼
File > Setting > 搜索“File encodings” {
IDE Encoding = UTF-8;
Project Encoding = UTF-8;
Properties Files (*.properties) {
Default encoding for properties files: = UTF-8;
}
}
2.3.2 顯示行號
Settings -> Editor -> Appearance -> Show line numbers = true;
2.3.3 代碼完成
Edit > Genaral > Code Completion
Autopopup documentation in (ms) = 10;
http://www.xuebuyuan.com/526074.html
2.4 加速運行
2.4.1 取消android studio啟動時自動打開上次關閉的項目
Appearance & Behavior > System Setting {
Reopen last project on startup = false;
}
2.4.2 禁止啟動時聯網檢查
AndroidStudio自動檢查AndroidSDK的更新
在bin目錄下文件idea.properties中最後添加一行,保存重新打開軟件
\Program Files\Android\Android Studio\bin\idea.properties {
...
disable.android.first.run = true;
}
2.4.3 禁止打包時聯網檢查
Android Studio打包運行時出現卡頓:
Gradle: Executing Tasks [:app:assembleDebug]
禁止打包時聯網檢查,加速Gradle構建
Solved mine with:
File -> Settings -> Build, Execution, Deployment -> Build Tools -> Gradle {
Offline work = true;
}
注意:設置為離線之後,出現這類錯誤:
BUILD FAILED
No cached version of com.android.tools.build:gradle:1.3.0 available for offline mode.
這時需要重新設置為在線,它會自動下載一些文件
Download https://jcenter.bintray.com/com/android/tools/build/gradle/1.3.0/gradle-1.3.0.pom
Download https://jcenter.bintray.com/com/android/tools/lint/lint/24.3.0/lint-24.3.0.pom
...
3 Android項目的配置
3.1 項目的文件夾結構
這裡依據使用AndroidStudio新建的Android項目的目錄結構進行描述。
MyApplication\app\src\main\java // ".java"代碼路徑,例如java/com/example/myapplication/
MyApplication\app\src\main\res
MyApplication\app\src\main\res\mipmap-xxhdpi // drawable-xxhdpi
MyApplication\app\src\main\jniLibs\armeabi // 依賴的“.so”包
MyApplication\app\src\main\jniLibs\armeabi-v7a
MyApplication\app\src\main\jniLibs\x86
MyApplication\app\libs // 依賴的“.jar”包
3.2 項目配置文件
3.2.1 主要的配置文件
MyApplication\app\build.gradle // SDK版本、簽名密鑰、依賴的包等等
MyApplication\settings.gradle // 配置包含哪幾個代碼庫
MyApplication\build.gradle
MyApplication\app\proguard-rules.pro // 代碼混淆的規則的配置
MyApplication\gradle\wrapper\gradle-wrapper.properties
MyApplication\[其他……]
3.2.2 MyApplication\app\setting.gradle
項目依賴兩個
app和
umeng_library模塊(或稱“子項目”)
include ':app'
include ':umeng_library'
3.2.3 MyApplication\build.gradle
MyApplication項目中所有模塊(或稱“子項目”)通用的配置
從Gradle官網查看最新版本;
Jcenter:
https://jcenter.bintray.com/com/android/tools/build/gradle/
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:1.3.0' // 聲明android gradle plugin的版本
}
}
allprojects {
repositories {
jcenter() // 遠程倉庫JCenter
}
}
遠程倉庫JCenter:
https://jcenter.bintray.com/
11:05:30: Executing external task 'assembleDebug'...
Download https://jcenter.bintray.com/com/android/tools/build/gradle/2.0.0/gradle-2.0.0.pom
Download https://jcenter.bintray.com/com/android/tools/build/gradle-core/2.0.0/gradle-core-2.0.0.pom
Download https://jcenter.bintray.com/com/android/tools/build/builder/2.0.0/builder-2.0.0.pom
Download https://jcenter.bintray.com/com/android/tools/lint/lint/25.0.0/lint-25.0.0.pom
3.2.4 MyApplication\app\build.gradle
apply plugin: 'com.android.application' // 表示使用 com.android.application 插件(或者module)
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:22.2.1'
compile project(':umeng_library')
// compile files('libs/gson-2.3.1.jar')
}
android {
compileSdkVersion 21 // 編譯所使用的SDK版本\sdk\platforms\android-21,或者打開SDK Manager查看已經下載的版本
buildToolsVersion "23.0.1" // 編譯所使用的構建工具?版本\sdk\build-tools\23.0.1
defaultConfig {
applicationId "com.example.myapplication" // 應用的名稱
minSdkVersion 11 // 最低支持 Android 版本
targetSdkVersion 21
versionCode 20
versionName "1.0"
}
signingConfigs {
mySigningConfigTwo {
}
myDefaultSigningConfig {
storeFile file('E:\\android\\key\\android.keystore')
keyAlias 'mySigningKey'
keyPassword 'myPassword'
storePassword 'myPassword'
}
}
buildTypes {
debug {
}
release { // 創建發布版本時的配置
signingConfig signingConfigs.myDefaultSigningConfig // 使用簽名
minifyEnabled false // 是否代碼混淆
shrinkResources true // 收縮資源
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' // 代碼混淆的配置文件
}
}
packagingOptions {
exclude 'META-INF/LGPL2.1'
exclude 'META-INF/LICENSE'
exclude 'META-INF/NOTICE'
}
}
}
dependencies { // 依賴的程序包
compile fileTree(dir: 'libs', include: ['*.jar']) // 表示依賴\libs\目錄下的所有jar包
compile 'com.android.support:appcompat-v7:22.2.1' // 依賴這個程序庫
compile files('libs/arcgis-android-api.jar') // 依賴這個jar包
compile project(':umeng_library') // 依賴這個程序庫
}
}
3.2.5 MyApplication\gradle\wrapper\gradle-wrapper.properties
gradle-wrapper.properties指定版本的gradle,如果沒有緩存,gradle wrapper task執行下載。
#Sat Apr 16 10:24:07 CST 2016
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-2.10-all.zip
3.3 Maven
例如導入最新版的Volley程序庫到Android項目:
1. 從Maven Repository搜索volley,得知域名為com.mcxiaoke.volley:
http://mvnrepository.com/search?q=volley
從jcenter查詢com/mcxiaoke/volley/中可以引用的版本:
https://jcenter.bintray.com/com/mcxiaoke/volley/library-aar/1.0.1/library-aar-1.0.1.aar
添加到build.gradle:
compile 'com.android.support:appcompat-v7:22.2.1'
3.4 Gradle-自動化構建工具
Gradle 是以 Groovy 語言為基礎,面向Java應用為主,基於 DSL(領域特定語言)語法的自動化構建工具。它拋棄了基於 XML的各種繁瑣配置。
官方網站:https://docs.gradle.org/
/kf/201501/366464.html
Android Studio系列教程:
https://segmentfault.com/a/1190000002464822
4 導出安裝包
構建成功之後,生成測試包(
.apk):
Gradle > Gradle projects > MyApplication > :app > Tasks > build > 雙擊`assembleDebug`;
生成正式包(
.apk):
Gradle > Gradle projects > MyApplication > :app > Tasks > build > 雙擊`assembleRelease`;
安裝包路徑:
MyApplication\app\build\outputs\apk\app-debug.apk
MyApplication\app\build\outputs\apk\app-release.apk
5 AndroidStudio最常用的少量快捷鍵
建議熟記
編寫代碼
Esc:回到編輯框
Ctrl+W:選中[單詞>語句>一行>函數],按住Ctrl多點幾下W,選中的部分會按這個變化。
按n次可以達到‘復制行’的效果
Ctrl+R:替換字符串
Ctrl+Alt+L:格式化代碼
Ctrl+Q:光標所在方法的文檔
Alt+Q:顯示光標所在的方法
Shift+F6:重構,重命名變量
Ctrl+Shift+U:英文字符的大寫小寫轉換,切換大小寫
代碼錯誤
F2:高亮錯誤或警告快速定位,修復,[多次點擊]可以在[多個錯誤的位置]之間跳動
Alt+Enter:修復錯誤,比如自動導入包、彈出修復操作列表,優化導入的包import:鼠標停在沒有用到的imort語句,會出現“Optimize imports”
查看代碼結構
Alt+F7:查看元素(public方法、類等等)被引用的所有位置
Ctrl+H:類的繼承層次
轉到代碼位置
Ctrl+Shift+N:打開文件,輸入文件名或者關鍵詞
Ctrl+B:轉到光標所在的方法的定義,F4是同樣的作用
Ctrl+Alt+Left:浏覽過的位置(整個開發環境內)之間跳轉,Ctrl+Alt+Right的意義類似
Ctrl+G:跳到行
Alt+Left:在浏覽位置列表中切換,和Alt+Right意義相似
查找代碼或文件
Ctrl+N:查找類
Ctrl+F:查找文件中的任意元素
Ctrl+E:最近編輯的文件列表
Ctrl+F4:關閉正在編輯的文檔
http://www.kafan.cn/edu/8452051.html
6 注釋模板
Android Studio File and Code Templates
注意:使用時把下面的名字改成你的名字
Settings > File and Code Templates > {
Class:
#if (${PACKAGE_NAME} && ${PACKAGE_NAME} != "")package ${PACKAGE_NAME};#end
/**
* @description TODO
*
* @auhtor: myName
* @datetime: ${YEAR}-${MONTH}-${DAY} ${HOUR}:${MINUTE}
*/
public class ${NAME} {
}
Interface:
#if (${PACKAGE_NAME} && ${PACKAGE_NAME} != "")package ${PACKAGE_NAME};#end
/**
* @description TODO
*
* @auhtor: myName
* @datetime: ${YEAR}-${MONTH}-${DAY} ${HOUR}:${MINUTE}
*/
public interface ${NAME} {
}
7 安裝插件
1.Android studio File->Settings..->Plugins–>Browse repositores..搜索GsonFormat
2.安裝插件,重啟android studio
3.使用:復制json數據,光標停在新建的數據類中,Alt+Insert ,選擇gsonFormat可以自動生成這種數據類。
8 其他問題
Android Studio 自動生成 serialVersionUID
File > Settings > 搜索“Serialization issues” {
true = Serializable class without 'serialVersionUID'
}
自動生成serialVersionUID的操作方法:
Alt+Enter > 第一項 > 第二項 > Enter;
Plugin with id ‘com.android.application’ not found
Error:(1, 0) Plugin with id 'com.android.application' not found.
解決方案:
打開 [項目文件夾]\app\build.gradle 文件,在文件末尾添加:
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:1.3.0'
}
}
用手機淘寶浏覽商品詳情時,商品圖片是放在後面的,在第一個ScrollView滾動到最底下時會有提示,繼續拖動才能浏覽圖片。仿照這個效果寫一個出來並不難,只要定義一個Lay
最近兩天為了測試使用ffmpeg獲取視頻圖片的效率問題,玩了一把ffmpeg的移植工作. 在這裡作下記錄。所有測試都只在mac系統中測試。 1. 下載ffmpe
SlidingMenu——方式11、初始化SlidingMenu對象2、設置SlidingMenu的菜單模式。 只有左側菜單,只有右側菜單,或者雙
首先聲明我們通篇用的都是Google開源框架Zxing,要實現的功能有三個 ,生成普通二維碼、生成帶有中心圖片Logo 的二維碼,掃描解析二維碼,直接上效果圖吧首先我們需