1. 程式人生 > >Android開發需求功能一覽表

Android開發需求功能一覽表

按照目前我接觸到的功能,大概劃分下

1.框架     資料庫,網路,快取模式,H5互動(cordova)

2.帶有主題並控制元件化,而且例如輸入框這種  統一處理  有清空功能的

3.第三方服務    okhttp/XUTILS,七牛,環信,友盟分享,統計,百度定位,熱更新等

4.基礎功能    例如引導,首頁,註冊,登入,修改密碼,重置密碼,設定(關於,升級等)

5.業務功能

架構現在流行元件化,參考

http://blog.csdn.net/guiying712/article/details/55213884

https://github.com/mzule/ActivityRouter   做為跳轉

http://www.jianshu.com/p/c696acb74bd2

大的業務考慮外掛化

記憶體優化

https://www.zhihu.com/question/30138734

細節實現考慮MVP,MVVM,MVC

framework   線上看程式碼 http://androidxref.com/

看到另外一個層面的劃分結構:http://www.jianshu.com/p/42d45998117f

目前發現兩種架構方式

1.普通架構  以Activity為底,我主要用了兩個基礎activity,一個登陸前,一個是登陸後,登陸前不需要校驗直接呼叫後臺介面,登陸後需要校驗後才可以使用介面,校驗指後臺安全性校驗,封裝類似,主要封裝了網路判斷,載入動畫,隱藏鍵盤,禁止根據系統設定改變字型大小,動態申請許可權等

2.同一個activity,以fragment為底的基礎架構,每一個都是fragment,fragment會比activity輕量一些,但是也更容易出現很多坑

http://www.jianshu.com/p/38f7994faa6b

混合開發分為三種:

1.簡單,純粹展示一些靜態頁面,webview,加Js橋,自己封裝通過js傳遞string,圖片base64,檔案不怎麼傳

2.稍微麻煩點,類似cordova,封裝好了一些基礎,傳遞檔案二進位制,String等,有完善的外掛模板還有UI模板,只需要自定義一些特殊,比如自定義了七牛上傳特殊外掛等

3.完全不一樣,使用同一種語言來寫不同平臺的reactNative,類似JS語言來控制原生介面顯示和邏輯,基本上原生關係不太大了,學習成本高

元件化封裝一個    Android業務元件化之URL Scheme使用   參考:http://www.cnblogs.com/whoislcj/p/5825333.html   可以標準化引數和跳轉

VR   其實就是平鋪的openGl的球型圖片,當然視訊是怎麼做到,還沒太清楚,按道理應該是類似的,球型播放

可以利用谷歌的VR播放器。https://github.com/linglongxin24/VRDevelopVideo

AR   Unity3D顯示3D圖形在螢幕上  http://www.arvrschool.com/read.php?tid=325&fid=21

UI:

1.引導介面

2.註冊介面

3.登入頁面

4.主介面(微信式下分頁,QQ式側滑分頁)

5.設定介面

6.關於介面

7.升級檢查更新  有升級標誌位,強制升級,提示升級,靜默安裝

8.意見反饋

9.其他(看需求)

a.activity  生命週期   棧模式

b.server bind模式,宣告週期  前臺服務  

c.broadcastreceiver  靜態和動態註冊

d.Content Provider  對外暴露提供資料庫介面(http://www.cnblogs.com/chenglong/articles/1892029.html  http://www.2cto.com/kf/201404/296974.html)

e.application 

10.控制元件自寫

a.整合(已有控制元件整合在一起)

b.自寫(根據控制元件手動畫一個控制元件,沒有已有控制元件支援)

c.繼承(在已有控制元件基礎上自己新增新功能以適合獨特APP使用)

11.動畫效果

12.3D展示

其他功能:

13.JNI NDK  C類庫呼叫

14.程式碼混淆  加殼編譯等 加密

15.網路互動

a.SSL()和普通HTTP請求

b.支援斷點上傳下載

c.網路狀態判斷(WIFI,移動,斷網)

d.網路傳輸(文字,檔案)

(1)文字傳輸 (XML,JSON)

(2)檔案傳輸(傳輸前壓縮,檔案流直傳)

e.代理

f.執行緒池管理 

g.多執行緒互動 同步和非同步

h.HTTP與區域網內SOCKET

16.資料儲存

a.SQLITE  (可以使用第三方框架greenDAO 或ActiviteAndroid)

b.檔案儲存

c.sharepreference

d.網路儲存

17.媒體播放(圖片,音樂和視訊)

18.圖片處理

a,圖片變形壓縮轉換

b.非同步下載

c.快取CACHE

19.工具包

a.常量

b.LOG分級控制記錄上傳等(http://bugly.qq.com/androidfast) ANR  CRASH  其他型別LOG   

日誌分為3種    Crash日誌   使用者業務操作日誌(後臺處理)  使用者行為日誌    

c.本地儲存

20.地圖功能(百度SDK  http://lbsyun.baidu.com/sdk/download)

21.推送功能(百度SDK http://push.baidu.com/   http://developer.baidu.com/platform/catalog/navigation-c/node/n301  也可以使用其他第三方,或者自己寫)

22.使用者統計

23.硬體裝置

a.藍芽

b.感測器(重力,加速度,方向,光線,GPRS等)

c.NFC

d.攝像頭(二維碼,人臉識別,卡號識別,拍照)

e.錄音

f.wifi

g.GPRS

24.搜尋(應用內搜尋,網路搜尋,語音搜尋)

25.即時通訊(環信 http://www.easemob.com/downloads)

26.分享和第三方賬號登入(sharesdk  http://wiki.sharesdk.cn/   http://www.cnblogs.com/smyhvae/p/4585340.html)

27.支付整合(微信,支付寶,網銀)

28.APP對外的介面(AIDI,還有其他自定義廣播等)

29.輔助功能服務(例如搶紅包輔助功能http://blog.csdn.net/jwzhangjie/article/details/47205299 )

30.hybird網頁混合開發模式

    最普通一種修是webview載入H5頁面,然後回撥Android或IOS原生介面(http://www.tuicool.com/articles/m6RVFfA)

    當然還有其他的框架,有些針對於純前端開發者的

31.自動化編譯   Android studio 針對gralde (http://blog.csdn.net/voiceofnet/article/details/45197883)   Ecplise針對ant(http://blog.csdn.net/webwalker/article/details/24796347)

32,pdf開源元件    vuAndroid 有些格式PDF不支援,例子:http://download.csdn.net/detail/z157794218/9517512   

支援比較好的mupdf  http://download.csdn.net/detail/z157794218/9518361

33.使用Android6.0以後許可權需要檢查後申請,參考  http://www.cnblogs.com/cr330326/p/5181283.html

別人講基礎和進階

http://blog.csdn.net/liuhe688/article/details/9494411

第三方開原始碼:

http://blog.csdn.net/shulianghan/article/details/18046021

http://blog.csdn.net/zhaihaohao1/article/category/3162599

http://blog.csdn.net/oyangyujun/article/details/43340893

http://www.open-open.com/lib/view/open1436262653692.html

https://github.com/Trinea/android-open-project

替換主題  https://github.com/burgessjp/ThemeSkinning(封裝的)  https://github.com/fengjundev/Android-Skin-Loader

按鈕線上製作圖片  http://angrytools.com/android/button/

34.字型大小  不跟隨系統字型改變 http://blog.csdn.net/zhuqiang1002/article/details/38756127

自定義設定字型大小 參考  http://blog.csdn.net/u011730649/article/details/42872923   其他方面

字型適配可能需要自己定義主題來做會更好些  http://www.cnblogs.com/likeandroid/p/4501758.html

35.陰影新增  https://github.com/Hitomis/CrazyShadow

36.開始程式碼編寫簡化第三方庫檔案  事件訊息傳遞eventbus        http://blog.csdn.net/harvic880925/article/details/40660137 

Retrofit註解        http://www.jianshu.com/p/308f3c54abdd

rxjava   http://gank.io/post/560e15be2dca930e00da1083

圖片拍照選擇器:

https://github.com/jeasonlzy/ImagePicker

https://github.com/easonline/AndroidImagePicker

https://github.com/pengjianbo/GalleryFinal

glide 圖片快取 https://github.com/bumptech/glide 

Robust 熱更新  http://tech.meituan.com/android_robust.htmlTinker熱更新  http://www.tinkerpatch.com/工具類      https://github.com/Blankj/AndroidUtilCode

http://blog.csdn.net/dj0379/article/details/38356773  XUtils 支援下載大檔案,斷點續傳

好用吸色器http://www.getmarkman.com/#/download-modal

這只是我自己劃分以及知識點,如果有不足,期望大家補充說明

ScrollView和recyclerView巢狀,有個簡單方法。

ScrollView改成NestedScrollView,recyclerView.setNestedScrollingEnabled(false);加上這兩句問題就解決了

scrolliview一直滑到最底部 scrollto失效

scrollView.post(new Runnable() {
            @Override
            public void run() {

                scrollView.fullScroll(ScrollView.FOCUS_UP);
            }
        });

toast 在樂視pro3上手機無法顯示

http://blog.csdn.net/qq_25867141/article/details/52807705

記錄一個工具 ImageOptim   專門用來優化圖片大小,減小APP大小

一個有意思的移動端資料問題

http://blog.csdn.net/ceko_wu/article/details/45244295 CursorAdapter優化排序和顯示問題

如果有NDK支援,其實也使用C層直接定址排序和尋找

AndroidStuido的外掛

https://www.jianshu.com/p/d76b60a3883d

https://blog.csdn.net/zheng_weichao/article/details/72961791

gradle多渠道打包

https://www.jianshu.com/p/4677efee7214