Android 開發推薦

madreain發表於2017-08-02

在網際網路迅速發展的今天,程式設計師真的有點爛大街了,最近頻繁聽到朋友都工作了,又去轉行做開發的,去培訓機構培訓然後出來長時間找不到工作的。各種跨專業、工作後轉型。網際網路行業競爭越來越激烈的今天,高效的快速開發,穩固的基礎才是從中取勝的關鍵。今天向Android開發者推薦一些開發的外掛及其一些開發的技巧,只是個人的一些愚見,希望對你有所幫助。

程式碼的規範

程式碼的規範對於一個程式設計師的長遠發展是相當重要的,android的程式碼規範其實和java是基本上一樣的,這裡推薦阿里巴巴java開發手冊,阿里還在不斷更新完善,感謝阿里為業內人士做的巨大貢獻,這一小步,影響很大。如果所有人都按照這個規範,當你接手別人的專案的時候還在為這個程式碼塊是幹什麼的,專案的迭代去抓耳撓腮嗎???

Android高效開發工具推薦

Android Studio 自動生成佈局程式碼外掛LayoutCreator

說到這裡,很多人應該都會比較熟悉JakeWharton大神貢獻的butterknife,類似的依賴注入還有androidannotationsDagger 2,但是用這些真的好嗎???其實是很影響效能的,這裡以butterknife的原始碼來分析

ButterKnife.bind過程

原始碼看進去

static void bind(@NonNull Object target, @NonNull Object source, @NonNull Finder finder) {
 Class<?> targetClass = target.getClass();
 try {
   ViewBinder<Object> viewBinder = findViewBinderForClass(targetClass);
   viewBinder.bind(finder, target, source);
 } catch (Exception e) {
   //省略異常處理
 }
}複製程式碼

再來看看另外一個方法

private static ViewBinder<Object> findViewBinderForClass(Class<?> cls)
   throws IllegalAccessException, InstantiationException {
 ViewBinder<Object> viewBinder = BINDERS.get(cls);
 //先找快取
 if (viewBinder != null) {
   return viewBinder;
 }
 //檢查下是否支援這個類
 String clsName = cls.getName();
 if (clsName.startsWith("android.") || clsName.startsWith("java.")) {
   return NOP_VIEW_BINDER;
 }
 try {
   //找到類名為 Activity 的類名加 "$$ViewBinder" 的類,例項化,並返回
   Class<?> viewBindingClass = Class.forName(clsName + "$$ViewBinder");
   //noinspection unchecked
   viewBinder = (ViewBinder<Object>) viewBindingClass.newInstance();
 } catch (ClassNotFoundException e) {
   //注意這裡支援了繼承關係
   viewBinder = findViewBinderForClass(cls.getSuperclass());
 }
 //快取 viewBinder
 BINDERS.put(cls, viewBinder);
 return viewBinder;
}複製程式碼

看完原始碼ButterKnife對效能有一定的影響,並且引入了更多的類和方法,增加了安裝包的大小。但是,對開發效率的提升也是顯而易見的,尤其是配合AS外掛的使用。如何取捨,完全是由作為開發者的你來決定了。其他的幾個注入的第三方庫類似的,所以在這裡為了不影響效能,又避免寫findViewById,因此推薦LayoutCreator

  • 安裝

    方式一. 下載專案中的jar包,通過本地disk方式匯入

    方式二. 在Android Studio的外掛中心搜尋LayoutCreator下載安裝

用法截圖

image
image

Android Code Generator根據佈局檔案快速生成對應的Activity,Fragment,Adapter,Menu。

有了上面的LayoutCreator神器,再加上這個神器,估計差不多省去了很多coding的時間了,是不是感覺終於有時間騰出來談個女朋友了呀!!!祝沒有女朋友的攻城獅們早日找到女朋友。。。

  • 安裝

    方式一. 下載專案中的jar包,通過本地disk方式匯入

    方式二. Preferences/Settings->Plugins->Browse repositories... 然後在搜尋框輸入Android code Generator。

用法截圖

image
image

外掛GsonFormat快速實現JavaBean

還在為返回JSONObject格式的字串而一個一個對著寫引數嗎???GsonFormat一個根據JSONObject格式的字串,自動生成實體類引數。 以後寫實體類就是秒秒鐘的事!!!

  • 安裝

    方式一. 下載GsonFormat.jar包,通過本地disk方式匯入

    方式二. Android studio File->Settings..->Plugins–>Browse repositores..搜尋GsonFormat,安裝外掛,重啟android studio

用法截圖

gsonFormat.gif
gsonFormat.gif

其他外掛推薦

安裝方式都有兩種,可以參考上面進行安裝

SelectorChapek

設計師給我們提供好了各種資源,每個按鈕都要寫一個selector是不是很麻煩?這麼這個外掛就為解決這個問題而生,你只需要做的是告訴設計師們按照規範命名就好了,其他一鍵搞定。

LeakCanary

強烈推薦,幫助你在開發階段方便的檢測出記憶體洩露的問題,使用起來更簡單方便。

Genymotion

強大的讓所有人都認識

Android Parcelable code generator

在類中插入實現了Parcelable介面的程式碼。

Android Material Design Icon Generator

將Material Design的圖示匯入到程式中。

Android Drawable Importer

這是一個非常強大的圖片匯入外掛。它匯入Android圖示與Material圖示的Drawable ,批量匯入Drawable ,多源匯入Drawable(即匯入某張圖片各種dpi對應的圖片)

Android studio的外掛還有很多很多,選擇一些常用的,別裝太多外掛哦,要是你想要什麼功能的外掛可留言,我為你推薦

常用開源庫

Android是開源的,因此也誕生了一批又一批的開源大牛,然後這些大牛寫了牛逼的開源庫,讓我們今天的工作更簡單,在這裡想大家介紹一些常用的開源庫

網路請求

okhttp
okhttp相關延伸:Fast-Android-NetworkingokhttputilsNoHttp

retrofit 這是一個很高深的網路請求,基於okhttp

現在主流的是這兩個,還有volley、xutil等就不在介紹了

資料解析

gson

fastjson

照片載入

glide

fresco

picasso

資料庫

greenDAO

ormlite

LitePal

realm-java

重新整理控制元件

參考重新整理載入控制元件

事件匯流排

其實為個人不建議使用事件匯流排,因為程式碼邏輯不清楚,後期迭代維護麻煩;觀察者獨有的,觀察者可能會造成介面的膨脹

EventBus

圓角

CircleImageView

圖表

MPAndroidChart

SmallChart

WilliamChart

hellocharts-android

ImageVie手勢操作

PhotoView

PinchImageView

照片選擇器

TakePhoto

PhotoPicker

MultiImageSelector

loading框

AVLoadingIndicatorView

Android-SpinKit

LoadingDrawable

LoadingView

自定義對話方塊

sweet-alert-dialog

dialogplus

MaterialDialog

material-dialogs

媒體播放器

  • 視訊

JieCaoVideoPlayer

ExoPlayer

PLDroidPlayer

GSYVideoPlayer

  • 音訊

android-UniversalMusicPlayer

Timber

  • 直播

SmarterStreaming

其他推薦

RxJava

RxAndroid

AndroidSwipeLayout別人討厭各種仿ios什麼效果,程式設計師可以寫著玩玩沒問題。仿iOS各種左右滑效果

circular-progress-button帶進度顯示的Button,讓操作更炫酷

ToggleButton狀態切換的 Button,類似 iOS,用 View 實現

AndPermission許可權管理

AndroidUtilCode工具類大集合

程式碼撰寫注意點

xml佈局

  • 注意事項

    • 避免黃色警告

    • 過時方法不要用

    • include的使用

    • merge的使用

    • viewstub的使用

    • 避免佈局巢狀過深;簡單佈局linearlayout,複雜佈局relativelayout;有些效果多考慮自定義view是否能實現,別用view疊加實現

    • style的使用,減少程式碼量

    • weight的合理使用

    • margain和padding合理比較進行選擇使用

    • 最新的佈局方式ConstaintLayout的使用

    • 避免不必要的渲染,可藉助第三方工具

java程式碼

  • 注意事項

    • 為了提高UE,需考慮快取、資料儲存優化、演算法優化、JNI、邏輯優化、需求優化(後面會詳細述說優化相關)

    • 程式碼結果清晰,多方法,避免一個方法執行很多行程式碼

    • 避免警告;多做異常處理;判斷條件多考慮

資源管理

  • 注意事項

    • AndroidStudio的lint清除無用的資源

    • 注意第三方引入的資源刪除時需注意(典型:某盟)

重點推薦:多coding,多看底層,知其然知其所以然

個人部落格

相關文章