《磨礪書店》app項目開發技術點總結(磨礪營馬劍威Android)

【威哥說】5月4日開班以來,1605期的學員們已經進入的Android項目實戰階段了,今天給你們帶來的是第一個項目實戰《磨礪書店》,成品即將出爐,正在調試上線的最後階段,下面爲你們介紹一下項目的詳情及使用技術,咱們用事實說話,讓一切以抄襲假裝項目實戰課程的靠邊站。 【正文】首先由小編上一組截圖,強姦一下各類的眼睛,也歡迎提提建議,後續升級版本若是你的建議被採納會有精美禮品贈送哦: 磨礪營 下面來講明一下本應用中使用的技術介紹: 1.androidImageIndicator實現首面圖片輪播,固然還有其它圖片輪播組件,好比Banner,使用組件的好處固然不言而喻了,除了使用組件,本身來實現也得會,可使用ViewPager+Handler+Thread,咱們可不想作個只會用組件的新手,你知道懂原理,用組件才更放心。 二、數據分頁與刷新 在本項目中,咱們採用了PullToRefresh和google自帶的SwipeRefreshLayout組件,使用SwipeRefreshLayout來加載新數據,PullToRefresh則實現分頁顯示數據,各用所長。固然同樣的道理,拋開這些組件化,咱們能夠爲列表添加頭部和底部,監聽滾動事件的方式實現自定義的數據刷新,咱們同樣能夠作到。 三、後臺服務器網絡請求 課程中,咱們講解了不少的網絡請求框架:Google的volley適合細粒度的網絡請求,asyncHttp,基apache httpClient的封裝庫,惋惜httpClient已經Android中被廢棄,asyncHttp的做者也已再也不更新,OKHttp,是目前使用較多的請求組件,與picasso出自同門,還有其它,不一一介紹了,沒有框架怎麼辦?咱們也能夠本身封裝httpUrlConnection的方式實現。 四、網絡請求數據處理 網絡請求後返回的數據格式一般有兩種:XML和JSON,咱們可使用PULL實現XML的解析,效率高,性能好,優於SAX,在移動端更是優於基於樹結構的DOM、JDOM、DOM4J;JSON數據咱們使用GSON和Android3.0之後支持的JsonReader實現,GSON適合一些簡單的數據轉換,很方便,缺點是在處理一些複雜的JSON數據有點力不從心,此時咱們將使用JsonReader實現解析,它能夠更好的控制每一個元素的解析。 五、實現圓角圖片與圖片緩存 在項目中使用圓角圖片是目前項目開發很是常見的,咱們在項目使用了android-shape-imageview來實現,好比我的頭像,但其它圖書的資源圖片考慮到緩存來提升加載性能,咱們使用了當今爲止最爲牛X的facebook出品的fresco框架,其擁有三級緩存的實現是迄今爲止傳統二級緩存實現沒法比擬的,處理圓角圖片也很簡單,漸近式加載JPG圖片,GIF支持等其它圖片緩存框架有的通通都有,人家沒有的fresco也有,總之,牛B就是了。 在課程中,固然咱們也介紹了ImageLoader,一個古老的圖片緩存組件,Picasso,Glide等,這些雖然只有二級緩存,但在一些中小項目中使用也已足夠,也是很強大的。誰說咱們只會用框架,咱們可使用LRU算法實現本身的緩存框架,好比實現數據的緩存,內存+磁盤,或數據庫緩存,咱們的武器有不少,選擇用什麼,咱們心知杜明。 六、支付功能 本項目中實現了支付寶和微信兩大支付平臺,因爲兩大支付平臺不支持我的用戶,咱們藉助了第三方平臺實現支付,在實現微信支付時,也用到如何利用程序自帶支付插件安裝的功能,第一,避免了在線下載浪費用戶流量,第二,因爲支付插件是使用的是第三方APK文件,這樣在發佈應用上線時容易被安全類應用掃描到插件,此時安全應用會提醒用戶此應用是個攜帶插件的應用,爲了不這個問題給用戶帶來沒必要要的困擾,咱們把插件重命名爲.db文件,在用戶使用到支付功能時,再把.db文件寫入用戶的sdcard還原apk,再執行插件安裝來解決這個問題,因爲篇幅緣由,想詳細瞭解的童鞋能夠留下QQ與威哥或磨礪營的講師交流哦。 七、自定義組件 本應用中商品詳情界面的實現裏,因爲界面展現的內容比較複雜,須要嵌套各類組件,而組件之間相同的事件處理會發生衝突,此時咱們要重寫組件的事件處理來解決衝突問題,如下方法在子組件上重寫,實現滾動條事件攔截處理: 重寫 onTouchEvent():java

//事件處理由父控件處理android

requestDisallowInterceptTouchEvent(false);算法

//事件處理由子控件處理數據庫

requestDisallowInterceptTouchEvent(true);apache

八、抽象了統一在Adapter中實現的ViewHolder類,達到複用 九、對於第三方組件或框架的使用,把它們封裝起來,在實現功能時就能夠避免在任何代碼中直接訪問組件的依賴代碼,這樣的好處是,在替換該組件或框架時,利於維護,不然須要修改全部直接調用的代碼。 十、還有一些小功能的實現:緩存

<1>手機驗證碼註冊安全

<2>顯示隱藏密碼服務器

<3>更新頭像裁剪上傳微信

<4>統一處理程序退出網絡

<5>自定義導航欄

<6>購物車編輯時佈局的變換實現方案(兩個adapter加載不一樣的佈局實現替換)

<7>一次登陸後保存登陸狀態自已實現:能夠在第一次經過網絡請求登陸後,把用戶信息保存在SharedPreferences中,下次無需再登陸直接獲取用戶信息。 好了,今天的文章就給你們總結項目中使用到的技術及解決方案,還有一些小小的處理細節,好比佈局優化,如何合理減小嵌套等就不一一列舉了,這些細節你只有在正在開發這個項目時纔會真正的深入體會,這就是項目經驗的積累。而在真正開發項目中遇到的各類疑難雜症,纔是真正的長姿式,這些,你永遠不可能在知識點的學習中掌握透徹。 更多內容關注微信公衆號mjw-java或訪問www.moliying.com

相關文章
相關標籤/搜索