【摘要】本文指出了在教學(xué)中使用黑馬程序員編著的Android 移動開發(fā)基礎(chǔ)案例教程中遇到的幾個問題,并給出相應(yīng)的解決辦法。并給出了用Android Studio開發(fā)無網(wǎng)絡(luò)的情況下導(dǎo)入項目不成功的解決辦法。
【關(guān)鍵詞】Android移動開發(fā);Android Studio;項目導(dǎo)入
【中圖分類號】TP311.52 【文獻(xiàn)標(biāo)識碼】B 【文章編號】2095-3089(2017)33-0290-02
一、Andriod簡介
Android系統(tǒng)是Google開發(fā)的一款開源操作系統(tǒng),國內(nèi)用戶俗稱“安卓”。Android操作系統(tǒng)內(nèi)核基于Linux設(shè)計,使用了Google公司自己開發(fā)的Dalvik Java虛擬機。Android操作系統(tǒng)主要應(yīng)用于移動設(shè)備,如智能手機、平板電腦、可穿戴設(shè)備、智能家居等領(lǐng)域。Android在中國市場智能手機操作系統(tǒng)中占據(jù)90%以上的市場份額,全球占據(jù)80%以上。
Android完全開源,此平臺從底層操作系統(tǒng)到上層的用戶界面和應(yīng)用程序都不存在阻礙產(chǎn)業(yè)創(chuàng)新的專有權(quán)障礙。開源的最大好處是 Android平臺會擁有越來越多的應(yīng)用與開發(fā)者,隨著用戶與應(yīng)用的壯大,Android平臺日益成熟與穩(wěn)定。
全球最大的在線搜索服務(wù)商Google已經(jīng)逐漸的滲透進(jìn)人們的日常生活中了Android緊密結(jié)合Google應(yīng)用,與Google服務(wù)無縫集成。人們不僅僅滿足于使用電腦終端來享受諸如Gamil、谷歌地圖、在線翻譯等在線服務(wù),由PC到移動終端的延伸成了一種必然的趨勢。而Android,則可以滿足人們的愿望。
Android版本更新很快,而且大的升級有可能出現(xiàn)版本之間的兼容性問題,或增加了新的技術(shù)。Android書籍的內(nèi)容滯后是正常的,編寫的程序有的運行不成功。增加初學(xué)者的學(xué)習(xí)難度。本人在教學(xué)中就遇到了一些問題。
二、開發(fā)環(huán)境
1.教材使用的開發(fā)環(huán)境是:
Windows 7
Android Studio2.2.2 SDK API Level 24 模擬器用Android SDK自帶的
JDK1.8.0
2.調(diào)試程序所用的開發(fā)環(huán)境是:
Windows 7/10
Android Studio2.3.3 SDK API Level26模擬器用Android SDK自帶的
JDK1.8.0以上
三、Android Studio的項目與模塊簡介
Project(項目)相當(dāng)于Eclipse中的workspace。Module(模塊)相當(dāng)于Eclipse中的Project。
一個Project可以包含多個Module,Project中的build.grade用于指定構(gòu)建的項目任務(wù),Module中的build.grade用于配置模塊的構(gòu)建任務(wù)。第一次運行Android Studio都是選擇New Project,后面還想再創(chuàng)建新的App工程時,可選擇New Module,在當(dāng)前工作空間下新建一個App工程。本文中的Project均只有一個App。
工程的目錄結(jié)構(gòu)如下:
Gradle Scripts中主要是工程的編譯配置文件,主要有:
1.build.gradle,該文件分為Project級與Module級,用于描述App工程的編譯規(guī)則,構(gòu)建配置文件。
2.gradle-wrapper.properties,該文件為gradle wrapper的配置文件。此文件默認(rèn)內(nèi)容如下:
#Mon Dec 25 23:15:38 CST 2017
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-3.3-all.zip
這個文件一般不用修改,如果gradle的版本不一樣,需手動更改的,可修心distributionUrl,也可在可視化的環(huán)境下通過操作修改。
3.proguard-rules.pro,描述java文件代碼混淆規(guī)則。
4.gradle.properties,Gradle的配置文件,在這個文件中可設(shè)置Gradle的代理。一般不用設(shè)。
5.settings.gradle,全局配置文件,如為include ':app',表示只編譯App模塊。有多個模塊要編譯可添加。
6.local.properties,項目的本地配置文件,指明SDK和NDK的本地路徑。一般不用改動。
四、遇到的問題及解決辦法
我們用的是由中國工信出版集團(tuán)和人民郵電出版社出版的、黑馬程序員編著的Android 移動開發(fā)基礎(chǔ)案例教程。
1.使用SD卡遇到的權(quán)限問題
編程實現(xiàn)播放處于SD卡中的音樂或視頻文件。學(xué)生學(xué)習(xí)的過程中就沒有播放出音樂和視頻,需要補充知識點,增加一些代碼和操作,才可運行成功。
(1)把音樂文件放入SD卡指定的目錄中
在Windowsr的命令提示符下,進(jìn)入Android的sdk目錄下的platform-tools文件夾中,輸入以下命令
adb root
adb remount
adb push a.mp3 /mnt/sdcard/Music/a.mp3
將當(dāng)前文件夾platform-tools中的a.mp3放到模擬器/mnt/sdcard/Music文件夾中,文件名依然為a.mp3。
然后修改app/manifests/AndroidManifest.xml文件,在節(jié)點
(2)加了這行代碼之后,打開模擬器的設(shè)置→應(yīng)用找到應(yīng)用程序名并單擊,打開應(yīng)用信息窗口查看權(quán)限發(fā)現(xiàn)未配置權(quán)限前灰色顯示的“未請求任何權(quán)限”變?yōu)楹谏@示,單擊“權(quán)限”進(jìn)入“應(yīng)用訪問授權(quán)”窗口,向右拖動存儲空間右側(cè)的滑塊,使之變?yōu)樗{(lán)色。
(3)返回模擬器的主界面,找到應(yīng)用程序的圖標(biāo)再單擊運行,聲音就出來了。視頻文件播放也類似。
學(xué)生要在教師的指導(dǎo)下才能做出來,自學(xué)有難度。其它很多應(yīng)用也是要開發(fā)權(quán)限的,需要舉一反三。
2.系統(tǒng)文件存放位置與教材所講不符
系統(tǒng)存放短信的數(shù)據(jù)庫文件路徑與教材所講路徑不符。調(diào)試程序所用的開發(fā)環(huán)境中存放在/data/user_de/0/com.android.providers.telephony/databases目錄下的mmssms.db文件中。而教材中所指的文件存放在/data/datae/com.android.providers.telephony/databases目錄中。
3.編碼格式轉(zhuǎn)換問題
網(wǎng)絡(luò)編程中,存放在服務(wù)器上的.JSON文件的編碼格式,獲取服務(wù)器的.JSON文件并將其解析出來顯示到ListView或RecyclerView上。如用記事本編輯,默認(rèn)的是ANSI編碼格式,解析后顯示亂碼,需要將其轉(zhuǎn)換為UTF_8編碼格式。如在Android studio中轉(zhuǎn)換則依然顯示亂碼。而用記事本打開,將文件另存為UTF-8編碼格式則顯示正常。
4.有序廣播無法攔截
攔截有序廣播的程序,用android自帶的模擬器攔截不了,用Genymotion和夜神可攔截。
5.導(dǎo)入項目遇到的問題
導(dǎo)入一個android studio項目,繼續(xù)之前的工作,如果網(wǎng)絡(luò)不通很麻煩,特別是使用軟件的版本不同的情況下,需要從網(wǎng)上下載文件。我們償試著從File→Settings→Build,Execution,Deployment→Gradle,選擇Use local gradle distribution,并修改Gradle Scripts下的文件,使它們與在本機上創(chuàng)建的可運行的工程項目一致,還是不行。通過各種嘗試,找到一個便捷的方法,方便繼續(xù)之前的工作??梢栽贏ndroid Studio中新建一個項目,然后在資源管理器中找到需要導(dǎo)入的app文件夾中的src文件夾,將其復(fù)制粘貼到新建工程相應(yīng)的位置即可運行,這需要在Window資源管理器窗口中操作。此時,如果項目中無訪問網(wǎng)絡(luò)的操作,則項目可運行成功,有網(wǎng)絡(luò)訪問則需網(wǎng)絡(luò)通暢。
五、結(jié)束語
Android程序開發(fā)前幾年用的是Eclipse環(huán)境,由于谷歌的不支持,現(xiàn)轉(zhuǎn)到了Android Studio環(huán)境。軟件環(huán)境的不斷更新,程序設(shè)計人員也要不斷地學(xué)習(xí),在使用新工具時不免會遇到各種各樣的問題,希望我們遇到的問題及處理方法對大家有些幫助。
參考文獻(xiàn)
[1]黑馬程序員.Android移動開發(fā)基礎(chǔ)案例教程[M].北京:人民郵電出版社,2017;148-248.
[2]李寧.Android開發(fā)權(quán)威指南[M].北京:人民郵電出版社,2013.9,564.
[3]歐陽燊.Android Studio開發(fā)實戰(zhàn)從基礎(chǔ)到App上線[M].北京:清華大學(xué)出版社,2017.6,12-16.
作者簡介:韋麗霜,1968,女,壯族,廣西柳江,學(xué)士,副教授,計算機應(yīng)用。