记一次Android全流程开发体验经历以及Android Studio使用【从环境搭建到项目打包发布 + 真实踩坑总结】
前言
臨時安排接手一個 Android 應(yīng)用項目開發(fā),慶幸的是 Android APP 已經(jīng)開發(fā)完成,我只需要在我的電腦上運行起來打包看一下效果即可,但是對于一個從未接觸過安卓開發(fā)的我來說真的是費盡腦汁,并且這個前期準(zhǔn)備真的是太麻煩了,而且會出現(xiàn)各種意想不到的問題。
所以,我利用閑暇時間整理一下本次 Android 開發(fā)的體驗經(jīng)歷,同時為其他沒有接觸過 Android 開發(fā)的小伙伴提供一下開發(fā)思路。
如果懂行的小伙伴看出了什么門道,歡迎留言討論,為其他小伙伴提供更多解決問題的思路。
一、開發(fā)環(huán)境快速搭建
1. 下載 JDK
官網(wǎng)下載地址:JDK - 傳送門
選擇下載相應(yīng)版本的 JDK,同意協(xié)議后下載即可。
如果在這一步下載有問題的話,可以去看一下具體的下載方式,網(wǎng)上對于 JDK 下載的教程有很多,我在這里就不過多贅述了。
2. 下載 Android SDK
由于某些限制,很難打開并且下載官網(wǎng)上的 SDK,所以這里為大家推薦國內(nèi)的 Android 工具的下載網(wǎng)站:AndroidDevTools - 傳送門
可以在頂部菜單欄選擇 “Android SDK 工具” => “SDK Tools”,會自動跳轉(zhuǎn)至該下載模塊;也可以直接下滑至 “SDK Tools” 模塊。
選擇適合自己的版本進(jìn)行下載即可。
將下載后的安裝包解壓到相應(yīng)的目錄下。
二、Android Studio
1. 下載
Android Studio 的下載也可以在剛才推薦的國內(nèi)的 Android 工具的下載網(wǎng)站上下載:AndroidDevTools - 傳送門
第一個就是,選擇版本直接下載即可。
2. 安裝
這里推薦大家看一下 Android Studio 開發(fā)環(huán)境快速搭建
這篇文章里的 4.安裝Android Studio,還是比較詳細(xì)的,在這里我就不過多贅述了。
三、創(chuàng)建并啟動一個安卓模擬器
至此,你應(yīng)該將你的 JDK、SDK 和 Android Studio 等都搭建完成。
我們在安裝了一個 Android SDK 后,就可以創(chuàng)建一個對應(yīng)版本的模擬器啦。
啟動 Android Studio ,點擊下面按鈕,進(jìn)入創(chuàng)建模擬器管理頁面
點擊 + Create Virtual Device 創(chuàng)建模擬器
在彈出的頁面中,Categroy 類型選擇 “Phone”,并選擇一款手機型號,單機 Next 按鈕(Play Store 列沒有三角形的,就無需下載其他組件)
下載對應(yīng)的鏡像,點擊 Next 繼續(xù)
在新頁面中設(shè)置 Android 模擬器
AVD Name:模擬器名字
Nexus 5X:手機型號,屏幕尺寸為5.2英寸,分辨率為1080*1920(單位:像素),420dpi
R:對應(yīng)的Android版本11.0 x86
Startup orientation:模擬器橫屏或者豎屏顯示
Graphics:選擇模擬器中的渲染圖形
Device Frame:是否顯示手機外形,可以不勾選。
設(shè)置完成,單擊 Finish 按鈕,即完成 Android 模擬器的創(chuàng)建。
在 Android 模擬器管理列表中,選擇創(chuàng)建的 Android 模擬器,在 Actions 一列中單機三角形啟動按鈕,啟動模擬器
啟動成功,如圖:
四、運行項目
上面我們已經(jīng)把環(huán)境和模擬器都創(chuàng)建好了,下面我們開始創(chuàng)建并運行一個項目。
可以在一開始創(chuàng)建一個 Android 應(yīng)用,或者在內(nèi)部選擇 “File” => “New” => “New Project”,創(chuàng)建一個項目。
或
選擇一個 Activity,默認(rèn)選擇空的 Activity 即可。
配置 Activity,用默認(rèn)的就好,不需要修改
第一次創(chuàng)建項目可能會這樣,Finish 即可
首次進(jìn)入項目主界面,等待加載完畢
首次使用需要安裝相關(guān)的構(gòu)建工具,我們同意相關(guān)協(xié)議,然后下一步,等待下載完成后,關(guān)閉即可
等待所有安裝完成,點擊右上角綠色的運行按鈕,會彈出對應(yīng)的 Android模擬器設(shè)備的窗口
安卓模擬器會顯示你開發(fā)的頁面
五、真機調(diào)試
真機調(diào)試分為兩部分,一是手機端設(shè)置,二是 Android Studio 的設(shè)置
手機端設(shè)置
打開手機的開發(fā)者選項,由于各個手機廠商的打開方式都不同,下面列出一些常用手機:
小米手機:連續(xù)點擊三下 “MIUI 版本”
華為手機:連續(xù)點擊 “版本號” 多次,直到屏幕提示已進(jìn)入開發(fā)者模式。
三星手機:連續(xù)快速點擊多次 “軟件信息” 按鈕,直到屏幕提示已進(jìn)入開發(fā)者模式。
OPPO、VIVO、魅族、錘子等手機品牌:連續(xù)點擊 “版本號” 或 “軟件版本號” 多次
進(jìn)入開發(fā)者選項,打開USB調(diào)試,選擇 USB 的連接方式(近充電、傳輸文件、傳輸照片等,不要選擇充電模式,確保電腦和手機可以進(jìn)行傳輸)
插入USB數(shù)據(jù)線連接,成功連接后,Android Studio 會顯示出該手機設(shè)備
Android Studio 的設(shè)置
此時切換到Android Studio上,即可看到自己的手機設(shè)備,點擊運行,在手機上安裝APP,即可運行
注意:此部分對于部分人的設(shè)備可能連接手機之后還需要對 Android Studio 進(jìn)行設(shè)置,但是我這個沒有設(shè)置就可以直接用了,所以僅供參考,要找到適合自己的方法最重要。
六、項目打包(APK)
我們項目完成,也調(diào)試好了,那么就要將項目打包成 APK 安裝包在手機上安裝。
APK 版本
APK 分為 Debug 和 Release 版本。我們在模擬器上運行時,會生成 Debug版本的安裝包,但是它是運行生成的,不是打包生成的,所以是不能夠直接安裝到我們手機上的。
如何查看Debug版本的 APK
把當(dāng)前項目切換成 Project 模式,然后找到 app/build 文件夾。只要你的項目運行了,就會生成這個文件夾,然后就可以看到當(dāng)前的 apk
此時如果將這個 apk 在手機上試著安裝一下,就會提示安裝失敗。
這是因為:只有 release 版本的 APK 才能安裝在手機上。
生成 release 版本的 APK(手機可正常安裝版本)
點擊導(dǎo)航欄的 Build → Generate Signed Bundle / APK…
Android Studio 版本在3.3以上的會出現(xiàn)下圖所示,選擇 APK,點擊 Next。較低版本的會直接進(jìn)入第三步。
第一次打包需要創(chuàng)建 key 文件,點擊 Create new
點擊 path 右側(cè)文件夾圖標(biāo)
這里創(chuàng)建一個文件夾(名稱自定義),File name 填寫自己定義的 jks 文件名,比如abc(這里第一次創(chuàng)建的時候可能會懵圈,jks 文件是哪里來的,這里明確一下,jks 文件就是我們自定義要生成的),點擊 ok
最上邊的 Password 是 jks 的密碼,Confirm 是確認(rèn)密碼;Key 字段下邊的 Alias 是用戶名,Password 是 key 密碼,Certificate 中至少需要填寫一項,然后點擊 OK
此時點擊 Next 下一步
Build Variants 中選擇打 debug 包還是 release 包,我們這里選擇 release 版本包,然后選擇簽名版本,然后 Finish
補充:
這里說一下簽名版本 Signature Vsersions 中的 V1 和 V2 的區(qū)別?
V1簽名是對 jar 進(jìn)行簽名,V2簽名是對整個 apk 簽名。
官方介紹就是:V2簽名是在整個APK文件的二進(jìn)制內(nèi)容上計算和驗證的,V1是在歸檔文件中解壓縮文件內(nèi)容。
二者簽名所產(chǎn)生的結(jié)果?
V1簽名:在V1中只對未壓縮的文件內(nèi)容進(jìn)行了驗證,所以在APK簽名之后可以進(jìn)行很多修改——文件可以移動,甚至可以重新壓縮。即可以對簽名后的文件在進(jìn)行處理。
V2簽名:V2簽名驗證了歸檔中的所有字節(jié),而不是單獨的zip條目,如果您在構(gòu)建過程中有任何定制任務(wù),包括篡改或處理APK文件,請確保禁用它們,否則您可能會使V2簽名失效,從而使您的APKs與Android 7.0和以上版本不兼容。
結(jié)論?
一定可行的方案: 只使用 V1簽名 方案
不一定可行的方案:同時使用 V1簽名 和 V2簽名 方案
對 7.0 以下一定不行的方案:只使用 V2簽名 方案
或者
1,如果要支持 Android 7.0 以下版本,那么盡量同時選擇兩種簽名方式,但是一旦遇到簽名問題,可以只使用 V1 簽名方案
2,如果需要對簽名后的信息做處理修改,那就使用 V1簽名 方案
3,如果最后遇到各種不同的問題,可以不勾選 V1 和 V2,直接打包簽名
我們剛才打的是 release 包,進(jìn)入 app/release 文件夾,可以看到,apk包已經(jīng)生成。
我們將生成的 apk 文件通過 QQ 發(fā)送到手機上,就可以直接下載安裝了。
下次簽名時,我們直接選擇之前創(chuàng)建的 jks 文件(一般系統(tǒng)會默認(rèn)選擇),輸入 key用戶名,密碼,即可打包。
七、clean項目
有時候我們把代碼改動了,出現(xiàn)一些莫名其妙的錯誤,Android Studio的自動編譯沒有成功,導(dǎo)致運行結(jié)果不正常,這時候我們就需要對項目進(jìn)行清理,也就是 clean project。
在 Android Studio 左側(cè)的項目目錄面板上,把 “android” 改成 “project” 的形式展示
在 clean project 之前,在 “app” —— “build” —— “outputs” 里,有存放臨時編譯成的 apk
這些 apk 有可能就是導(dǎo)致我們項目出現(xiàn)異常錯誤的罪魁禍?zhǔn)?/p>
找到菜單欄里的 “build”,如圖,選擇 “clean project”,就可以清除之前編譯的臨時項目
帶 clear 完成之后,再次查看 “app” —— “build” —— “outputs” 目錄,會發(fā)現(xiàn)原來的 “apk” 被清除掉了。
此時再重新編譯項目,部分異常錯誤就消失了。
踩坑總結(jié)
上面已經(jīng)介紹了一整套完整的開發(fā)流程,下面我將總結(jié)一下在我的項目開發(fā)過程中碰到的各種坑,希望大家能夠避免踩到類似的坑。
1. AndroidStudio [WARNING] —— android.disableResourceValidation=true
問題:
- The option setting ‘a(chǎn)ndroid.disableResourceValidation=true’ is experimental and unsupported.
分析:
- 存在不支持的 resource 文件或文件格式有問題。
解決方案:
2. the ADB binary found at ... is obsolete and has seroiusperformance problems with the Android Emulato
問題:
- the ADB binary found at … is obsolete and has seroiusperformance problems with the Android Emulator. Please update to a newer version to get significantly faster app/file transfer
分析:
- 錯誤大意:ADB二進(jìn)制文件位于……已過時,并且具有與Android模擬器的性能問題。請更新到較新版本,以獲得顯著更快的應(yīng)用/文件傳輸
- 意思就是有文件需要升級
解決方案:
打開 SDK manageer
選擇 SDK tools,會看到類似于以下內(nèi)容
在最后一列的 Staus 顯示 Update Available xxx 字樣,
有以上內(nèi)容說明有新的更新,然后選中該更新內(nèi)容進(jìn)行更新即可。
3. Android Studio [Build] —— Caused by: org.gradle.api.internal.plugins.PluginApplicationException: Failed to apply plugin [id ‘com.android.internal.application’]
問題:
- Android Studio運行項目出現(xiàn)Caused by: org.gradle.api.internal.plugins.PluginApplicationException: Failed to apply plugin [id ‘com.android.internal.application’]
Caused by: org.gradle.api.tasks.StopExecutionException: Your project path contains non-ASCII characters. This will most likely cause the build to fail on Windows. Please move your project to a different directory. See http://b.android.com/95744 for details. This warning can be disabled by adding the line ‘a(chǎn)ndroid.overridePathCheck=true’ to gradle.properties file in the project directory.
解決方案:
注意:所有更新都需要刷新一下代碼。
4. AndroidStudio [異常] —— Unsupported Modules Detected: Compilation is not supported for following modules
問題:
- Unsupported Modules Detected: Compilation is not supported for following modules: MTServer.MTServer, MTServer.MTServer.test, MTServer.MTServer.main. Unfortunately you can’t have non-Gradle Java modules and Android-Gradle modules in one project.
分析:
- 內(nèi)容修改之后沒有進(jìn)行同步刷新。
解決方案:
點擊 Sycn Project With Gradle Files 按鈕同步一下即可(如果工具欄中找不到 , 在 菜單欄 -> View -> 選中 Toolbar , 即可在菜單欄中找到 上面的 Sync 按鈕 )
File -> Settings(Shift + Alt + S) -> Plugins -> Installed -> 取消“Android Support”
5. AndroidStudio [異常] —— AndroidStudio SSL peer shut down incorrectly
問題:
- AndroidStudio 編譯時出現(xiàn)如下問題 SSL peer shut down incorrectly 或者某些jar包下載不下來,一般是因為墻的原因?qū)е碌摹?/li>
分析:
- 這時候我們就需要配置鏡像來解決這個問題。(為了提高jar包的下載速度也可以配置)
解決方案:
配置的方法就是在根 build.gradle 中添加鏡像倉庫,一般我們選擇阿里的 http://maven.aliyun.com/nexus/content/groups/public/
buildscript {repositories {maven { url 'https://jitpack.io' }maven { url 'https://maven.aliyun.com/repository/public' }maven { url 'https://maven.aliyun.com/repository/central' }maven { url 'https://maven.aliyun.com/repository/google' }maven { url 'https://maven.aliyun.com/repository/public' }maven { url 'https://maven.aliyun.com/repository/gradle-plugin' }google()jcenter()}dependencies {.....} }allprojects {repositories {maven { url 'https://jitpack.io' }maven { url 'https://maven.aliyun.com/repository/public' }maven { url 'https://maven.aliyun.com/repository/central' }maven { url 'https://maven.aliyun.com/repository/google' }maven { url 'https://maven.aliyun.com/repository/public' }maven { url 'https://maven.aliyun.com/repository/gradle-plugin' }google()jcenter()} }這里需要注意要將 jcenter() 放到最后一個,因為他就是那個下載慢,或者報錯的罪魁禍?zhǔn)?/p>
6. 碰到莫名其妙的錯誤時,記得 clean project 或者 Sycn Project With Gradle Files 同步刷新項目。
以上就是我在體驗開發(fā) Android 應(yīng)用時碰到的問題已經(jīng)總結(jié)的方法,由于我也沒有深入接觸 Android 開發(fā),所以部分開發(fā)問題我也不能解決。
大家可以在項目開發(fā)過程中多多總結(jié)。
希望上面的內(nèi)容可以幫助到大家。有任何問題歡迎討論留言,最后不要忘記一鍵三連哦~。
各位 加油!
總結(jié)
以上是生活随笔為你收集整理的记一次Android全流程开发体验经历以及Android Studio使用【从环境搭建到项目打包发布 + 真实踩坑总结】的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: K_A12_007 基于STM32等单片
- 下一篇: protobuf android 编译,