我的第一次安卓app開發(fā)經(jīng)歷(我的第一次安卓app開發(fā)經(jīng)歷了什么)
從想做app開發(fā)到今天差不多半年時間了,現(xiàn)在已經(jīng)有3個APP發(fā)布在谷歌應(yīng)用商店上面。是時候給自己做個總結(jié)了。
本人想做app的想法是源于想找一個撥打電話的應(yīng)用,能夠顯示相對較大的頭像。我使用的安卓手機(jī),所以所有的經(jīng)驗都是基于安卓的開發(fā)。經(jīng)過搜索,我沒有找到,大部分的快速聯(lián)系人都是一般大小的圖標(biāo),或者是聯(lián)系人姓名。我就想能不能自己開發(fā)一個應(yīng)用,能夠顯示大的頭像,讓視力不好的,比如老年人可以一眼認(rèn)出聯(lián)系人,然后撥打號碼。
說干就干。本人也不能完全說是零基礎(chǔ)。在20多年前的大學(xué)里,也學(xué)過C語言,BASIC語言。研究生期間也用VB編過小程序。現(xiàn)在的本職工作是土木工程師,平時用電腦最多的是畫圖軟件比如AutoCAD, MicroStation。但對電腦和軟件還是比較有興趣的。
首先查詢到的最流行的安卓開發(fā)工具就是Android Studio,而且是免費的。那就下載安裝吧。根據(jù)自帶的實例教程,學(xué)習(xí)了基本的操作。其實各種語言都是相似的,編程邏輯也是相通的。估計搞開發(fā)的都編過hello world這個程序吧。
最開始的時候,想開發(fā)一款應(yīng)用只滿足自己的需要就可以了。所以用家里常用聯(lián)系人的頭像作為打電話按鈕的圖標(biāo),在一個手機(jī)屏幕界面里可以顯示8個聯(lián)系人。然后增加了設(shè)置電話和撥打電話的功能。在網(wǎng)上,找到相應(yīng)的類似的程序源代碼都不難。根據(jù)自己的需要改動和組合精簡作為己用。
最后的成品是這個樣子的。通過一些方式事先剪裁好圓形的頭像(圓形比方形好看),在每個頭像下面設(shè)計一個按鈕來輸入電話。最后,點擊頭像就可以撥號了。這樣一來,界面非常簡潔,沒有多余的按鈕。生成安裝文件apk后,轉(zhuǎn)入自己的手機(jī)中,安裝使用了一段時間,很順利。
實踐過程中學(xué)到編出一個應(yīng)用,不是僅僅會coding,還需要美工(對應(yīng)用的界面進(jìn)行設(shè)計,不能太難看了吧)。還要制作圖標(biāo)(而且對不同分辨率,還要制作不同的大小的圖標(biāo),這點很蛋疼)。還有就是,在編程工程中,難免會出錯。排查錯誤,改正編碼是一定避免不了的。
這第一個應(yīng)用,取名叫QinPhone(親人電話)有太多的局限性了。首先,聯(lián)系人照片是事先寫入程序的,不能更改。即使是自己的家人,有時也想更換一下頭像照片。而且這個應(yīng)用只能自己使用,不能推廣。有了這個想法后,決定開發(fā)出可以自己設(shè)置頭像照片的功能,這樣應(yīng)用就可以開放,對任何人都可以使用了。
出于對隱私的考慮,本人是不太愿意讓用戶去建立一個網(wǎng)上的賬號,然后把照片存到網(wǎng)上。每次打開應(yīng)用,都去調(diào)用網(wǎng)絡(luò)信息。所以還是把存聯(lián)系人頭像的功能設(shè)計為存在本地手機(jī)上。對于照片的剪裁,網(wǎng)上有很多的實例。我借鑒了一個常用的,并且最后剪裁成圓形的照片作為自己開發(fā)程序的功能之一。因為使用了這個常用的相機(jī)的一個功能(intent),這里存在個問題,在后面會講到。
為了把頭像做得盡可能的大,我把界面設(shè)計成了6個聯(lián)系人。對一般人,常用的6個電話也夠用了。隨時也可以更改照片和電話。應(yīng)用取名為PicPicture,意思是選取照片的意思,Pic是Pick的諧音。
開發(fā)過程中,遇到的問題是當(dāng)應(yīng)用選取照片并剪切成聯(lián)系人頭像,并存儲到本地路徑后,下次打開應(yīng)用,這六個聯(lián)系人的頭像還是默認(rèn)值。
這個問題一直沒有解決。在這個想辦法解決的過程中,為了使應(yīng)用能夠被其他人使用,我把頭像改成了通用的家庭成員稱謂,比如父親,母親等。實際效果如下。現(xiàn)在看,還是簡陋了些。而且在美觀方面也有改進(jìn)的空間。但作為一個基本可以使用的應(yīng)用,我還是決定把它嘗試發(fā)布出去,也是對發(fā)布應(yīng)用的過程進(jìn)行學(xué)習(xí)。應(yīng)用取名為9 Big Family Call Button (有點長)。
發(fā)布安卓應(yīng)用,最常見的就是發(fā)布到它自己的應(yīng)用商店里,使用play console的服務(wù)就可以。需要建立賬號,并且交$35費用就可以發(fā)布了。大概經(jīng)過1天時間,就發(fā)布到google play store上面了。這一刻,還是很激動的,很有成就感。
下面還是繼續(xù)開發(fā)最初的應(yīng)用。在沒有合適的解決方法下,我單獨開發(fā)出另一個應(yīng)用PhotoCall,去調(diào)用前一個應(yīng)用生產(chǎn)的頭像,然后在每個頭像下面增加一個設(shè)置電話的按鈕和撥號按鈕。曾經(jīng)想設(shè)置一個透明的按鈕去覆蓋頭像,但是沒有成功。好在最后的結(jié)果還是比較滿意的。在對這兩個應(yīng)用的使用后,發(fā)布到了應(yīng)用商店上面。
還沒完。想能不能讓自己的應(yīng)用給自己帶來些收益。于是研究一下,要么把應(yīng)用設(shè)置成收費的,要么加廣告。后來還是覺得加廣告好些,畢竟這年頭愿意買應(yīng)用的不多。又是一些研究啊,加廣告也有3種不同的方式。最終選取了比較常用的banner橫幅的形式。又學(xué)會了申請開通AdMob賬戶,把廣告代碼加入到相應(yīng)的位置里。
期間也學(xué)到一些教訓(xùn),就是生產(chǎn)發(fā)布的應(yīng)用時候,一定要記錄密匙。如果忘記了,下次就不能發(fā)布升級,而只能作為新應(yīng)用發(fā)布。
再后來,就是為了方便用戶,在兩個應(yīng)用里增加了轉(zhuǎn)到另一個應(yīng)用的按鈕。
又過了一段時間,發(fā)現(xiàn)下載使用的用戶不多,嘗試了打廣告。最開始是對一個應(yīng)用演示的視頻打廣告,效果不是很好。后來直接對應(yīng)用打廣告,效果還是不錯的。PhotoCall的下載已經(jīng)突破100了。打廣告又是對Google Ads的學(xué)習(xí)過程。
對于一個非計算機(jī)專業(yè)的非科班,能夠發(fā)布出有一定實用性的應(yīng)用,讓更多的人受益,還是很高興的。
總結(jié)一下不足吧,如果有能力希望未來能改進(jìn)自己的應(yīng)用。
1. 為了實現(xiàn)最初的功能,分成了2個應(yīng)用,還是不方便用戶。希望可以合并。
2. 剪切功能的實現(xiàn),使用了com.android.camera.action.CROP這個intent,但是有些安卓手機(jī)尤其是原生安卓系統(tǒng)的,不帶這個功能,強(qiáng)行使用會出錯。希望以后能找到更通用的剪切模塊。
3. 或許以后設(shè)計成調(diào)用通訊錄里的聯(lián)系人,把聯(lián)系人的頭像放大(但原圖可能就不大,看效果吧)。
好了,以上就是對這半年的業(yè)余時間開發(fā)應(yīng)用的總結(jié)??傮w來說,對自己是鍛煉和提高的。對于以后做任何事情,尤其是沒有經(jīng)驗的事情,增加了很大的信心。很多事情沒有你想象的那么難。我能做到,你也行!對吧!