開發一款高端大氣上檔次的android應用需要必備的知識——記於2013年末


Android入門還是很簡單的,看兩本書,翻閱幾篇文章,搭建了開發環境就算入門了。可是怎樣開發一款完備的android應用呢,開發一款高端的android應用又需要那些知識呢,作者根據幾年的開發經驗做了一點總結,有不足之處也請讀者補充。

 

一、網絡開發技能

    開發的應用肯定會聯網,在移動互聯網時代,單機應用會越來越少。如果我們開發的應用缺少與服務器的交互,內容上不會豐富,更有可能的是我們無法控制到應用,得不到用戶及用戶反饋。網絡連接中用的最多的無非是Http或者Tcp。Android中http使用提供了三個包,我們常用的是HttpClient、HttpURLConnection。網絡上也有對http的封裝包,例如volleyandroid-async-http,volley使用的HttpURLConnection,android-async-http使用的HttpClient。雖然http的封裝包使用起來都很簡單,但是我們也應該了解一下他們的區別,作者有一篇文章是介紹HttpClient、HttpURLConnection區別的,希望對您有幫助,AndroidHttp通信 HTTP Client與HttpURLConnection的區別

    volleyandroid-async-http都是非常簡潔、偉大的http開發庫,android-async-http有詳細的開發文檔,作者不做詳細的說明。 Volley是Ficus Kirpatrick在Gooogle I/O 2013發布的一個處理和緩存網絡請求的庫,能使網絡通信更快,更簡單,更健壯;他沒有使用文檔,作者有幾篇文章介紹了volley的使用。

Google I/O 2013 – Volley: Easy, Fast Networking for Android

網絡通信框架Volley使用詳細說明

Asynchronous HTTP Requests in Android Using Volley

Android UI開發第三十六篇——使用Volley加載圖片列表

 

二、豐富的UI技能

    客戶端開發不同於服務端,服務端只處理邏輯,客戶端即處理邏輯又處理界面,而且界面又是多變的,不同的客戶端,界面肯定不一樣,相同的客戶端,不同時期的界面也可能不一樣,所以客戶端開發者總感覺在修改界面,不是在改界面就是在改界面的路上大笑

    我們處在一個以“用戶體驗至上”的時代,產品經理經常會以此為理由修改已經確定的UI,為了應付多變的需求,我們必須儲備盡可能多的UI處理技能。從最簡單的Button、TextView、EditText到高級點的Listiew、Tab、ViewPager,我們都應該掌握,我們還應該跟上時代掌握ActionBar、Fragment等等,自定義View的技能也必不可少。作者有一個UI開發專欄,介紹到了很多常用UI知識,分享給大家。

Android UI開發專欄

 

三、保證應用安全技能

    應用安全是我們重點關注的,尤其涉及到支付相關應用。我們不希望自己的應用遭破解、也不希望用戶被釣魚、更不希望出現數據漏洞,那我們就需要提高應用安全技能。

    應用安全會涉及到代碼安全、客戶端與服務端通信安全、應用內部組件通信安全、數據庫數據安全等等,作者也提供了一個專欄來介紹應用安全,內容還不夠多,以后會再補充一些。作者也不是專業做安全的,難免有不足之處,也請讀者諒解。

android應用安全

 

四、NDK技能,適當的使用so

    Android平台從誕生起,就已經支持C、C++開發。雖然Android的SDK基於Java實現,但這並不等同於“第三方應用只能使用Java”。在Android SDK首次發布時,Google就宣稱其虛擬機Dalvik支持JNI編程方式,也就是第三方應用完全可以通過JNI調用自己的C動態庫,即在Android平台上,"Java+C"的編程方式是一直都可以實現的。涉及到注重性能,或比較底層的程序都會使用C/C++開發,例如音視頻編解碼。有的應用會使用so文件,以保證應用安全。

    NDK全稱是Native Development Kit。NDK提供了一系列的工具,幫助開發者快速開發C(或C++)的動態庫,並能自動將so和java應用一起打包成apk。官方關於NDK開發的文檔相對較少,作者也總結了幾篇文章,幫着初學者入門。

 

Android JNI入門

JNI專欄中包含了JNI入門、C調Java、Java調C、

 

    android開發中,使用到的知識不只是上面的四點,還會有數據庫相關、Broadcast、Service等等,但是上面的四點在使用過程中更豐富、多變;而數據庫相關、Broadcast、Service等比較簡單、單一,在每個應用中的使用方式都是一樣的。在學習中我們更應該注重以上四點知識的積累。有不足之處,望讀者留言補充。

 

 

博主有幸成為2013年度博客之星的候選人之一,期待你的一票,謝謝您的支持。

投票猛擊

http://vote.blog.csdn.net/blogstaritem/blogstar2013/xyz_lmn

 

 

/**
* @author 張興業
*  http://blog.csdn.net/xyz_lmn
*  iOS入門群: 83702688
*  android開發進階群: 241395671
*  我的新浪微博: @張興業TBOW
*/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM