簡單總結一下在APP開發中常見的一些技術:
(1)歡迎頁:利用ViewPager加載一組圖片,圖片可以直接本地讀取,也可以從網絡下載,最後一張生成按鈕鏈接至登錄頁。
(2)第三方登錄:QQ、友盟、ShareSdk等有提供相應的API,需要申請對應的key集成SDK。
(3)底部tab導航切換:
- 典型界面設計,FragmentTabHost(用於實現點擊選項進行切換選項卡的效果)+ViewPager(左右切換當前的view,實現滑動切換的效果)+Fragment(存放不同選項的頁面內容)實現底部tab切換,達到懶加載效果。
- 高仿微信6.0主界面,切換圖標顏色漸變。
(4)導航欄菜單左右滑動:PagerSlidingTabStrip,可以實現導航欄字體大小和顏色的漸變特效。
(5)流行的網絡請求框架:
-
android-async-http
(1) 在匿名回調中處理請求結果
(2) 在UI線程外進行http請求
(3) 文件斷點上傳
(4) 智能重試
(5) 默認gzip壓縮
(6) 支持解析成Json格式
(7) 可將Cookies持久化到SharedPreferences -
Retrofit+okhttp
(1) 一般的get請求
(2) 一般的post請求
(3) 基於Http的文件上傳
(4) 文件下載
(5) 加載圖片
(6) 支持請求回調,直接返回對象、對象集合
(7) 支持session的保持 -
xUtils3.0
(1) DbUtil:Android中的orm框架,一行代碼就可以進行增刪改查
(2) ViewUtil:android中的ioc框架,完全註解方式就可以進行UI,資源和事件綁定,減少findViewById的麻煩;
(3) HttpUtil:支持同步,異步方式的請求;
支持大文件上傳,上傳大文件不會oom;
支持GET,POST,PUT,MOVE,COPY,DELETE,HEAD,OPTIONS,TRACE,CONNECT請求;
(4) BitmapUtil:加載bitmap的時候無需考慮bitmap加載過程中出現的oom和android容器快速滑動時候出現的圖片錯位等現象 -
Afinal框架:
(1) FinalDB:android中的orm框架,使用了線程池對sqlite進行操作。
(2) FinalActivity:android中的ioc框架,完全註解方式就可以進行UI綁定和事件綁定。無需findViewById和setClickListener等。
(3) FinalHttp:通過httpclient進行封裝http數據請求,支持ajax方式加載,支持下載、上傳文件功能。
(4) FinalBitmap:可以配置線程加載線程數量,緩存大小,緩存路徑,加載顯示動畫等
(6)數據庫存儲:
-
greenDAO
一個輕量級的快速的ORM方案。 操作SQLite 數據庫。 -
ActiveAndroid
簡單地通過如save()和delete()等方法來做到增刪改查等操作 -
DbFlow
(1) 無縫支持多個數據庫;
(2) 使用annotation processing提高速度;
(3) ModelContainer類庫可以直接解析像JSON這樣的數據;
(4) 增加靈活性的豐富接口。
(7)圖片緩存:
-
Android-Universal-Image-Loader
(1) 個性的ImageLoader配置
(2) 各式緩存方式任你選擇,DiskCache、MemoryCache
(3) 網絡圖片獲取想停就停 -
picasso
(1) 在adapter中需要取消已經不在視野範圍的ImageView圖片資源的加載,否則會導致圖片錯位,Picasso已經解決了這個問題
(2) 使用複雜的圖片壓縮轉換來儘可能的減少內存消耗
(3) 自帶內存和硬盤二級緩存功能 -
ImageCache
(1) 使用簡單
(2) 輕鬆獲取及預取新圖片
(3) 包含二級緩存
(4) 可方便的保存及初始化恢復數據
(5) 支持文件sd卡保存及自定義文件名規則
(8)分享功能:微信分享、QQ分享、新浪微博分享、社會化分享等
(10)第三方即時通訊:網易雲信、環信即時通訊雲、融雲SDK等
(11)二維碼掃描:目前使用較多的Google一個開源的掃碼框架ZXing,可以進行二維碼、條形碼掃描
**(12)json數據解析:**json、fastJson(阿里出品,號稱最快的解析框架)、gson(將字段轉爲model的形式)
(13)圖片選擇器:
-
Android-Ultra-Photo-Selector,支持選擇多張圖片、瀏覽設備上所有包含圖片的文件夾、預覽選擇的圖片並且支持縮放。
-
GalleryFinal,一個圖片選擇(單選/多選)、拍照、編輯、裁剪及旋轉爲一身的圖片選擇器。
(14)側滑菜單框架:
-
DrawerLayout,分爲側邊菜單和主內容區兩部分,側邊菜單可以根據手勢展開與隱藏(drawerLayout自身特性),主內容區的內容可以隨着菜單的點擊而變化
-
SlidingMenu,開源的Android開發類庫,它可以讓開發者在自己的Android App中非常便捷地創建側滑菜單
-
LDrawer,使用material design動畫的側滑效果
-
Android-LollipopShowcase,類似Android L設計效果
(15)下拉加載控件:
-
PullDownListView,仿微信首頁的下拉效果
-
Taurus,有動畫的下拉刷新控件
-
Android-PullToRefresh,之前最常見的下拉刷新,上拉加載控件,在列表或者視圖的頂部或者底部拖動可以刷新數據和頁面
-
SwipeRefreshLayout,Google推出的用於下拉刷新的控件
-
android-PullRefreshLayout,酷炫的下拉回彈效果
(16)日曆組件:
-
Android-Week-View,能夠新建日程任務的日曆控件
-
android-times-square,square出品的日期選擇組件
-
android-betterpickers,時間、日期類庫
-
Caldroid,以月爲單位展示日期的日曆控件,通過左右滑動切換月份