在網際網路迅速發展的今天,程式設計師真的有點爛大街了,最近頻繁聽到朋友都工作了,又去轉行做開發的,去培訓機構培訓然後出來長時間找不到工作的。各種跨專業、工作後轉型。網際網路行業競爭越來越激烈的今天,高效的快速開發,穩固的基礎才是從中取勝的關鍵。今天向Android開發者推薦一些開發的外掛及其一些開發的技巧,只是個人的一些愚見,希望對你有所幫助。
程式碼的規範
程式碼的規範對於一個程式設計師的長遠發展是相當重要的,android的程式碼規範其實和java是基本上一樣的,這裡推薦阿里巴巴java開發手冊,阿里還在不斷更新完善,感謝阿里為業內人士做的巨大貢獻,這一小步,影響很大。如果所有人都按照這個規範,當你接手別人的專案的時候還在為這個程式碼塊是幹什麼的,專案的迭代去抓耳撓腮嗎???
Android高效開發工具推薦
Android Studio 自動生成佈局程式碼外掛LayoutCreator
說到這裡,很多人應該都會比較熟悉JakeWharton大神貢獻的butterknife,類似的依賴注入還有androidannotations、Dagger 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下載安裝
用法截圖
Android Code Generator根據佈局檔案快速生成對應的Activity,Fragment,Adapter,Menu。
有了上面的LayoutCreator神器,再加上這個神器,估計差不多省去了很多coding的時間了,是不是感覺終於有時間騰出來談個女朋友了呀!!!祝沒有女朋友的攻城獅們早日找到女朋友。。。
安裝
方式一. 下載專案中的jar包,通過本地disk方式匯入
方式二. Preferences/Settings->Plugins->Browse repositories... 然後在搜尋框輸入Android code Generator。
用法截圖
外掛GsonFormat快速實現JavaBean
還在為返回JSONObject格式的字串而一個一個對著寫引數嗎???GsonFormat一個根據JSONObject格式的字串,自動生成實體類引數。 以後寫實體類就是秒秒鐘的事!!!
安裝
方式一. 下載GsonFormat.jar包,通過本地disk方式匯入
方式二. Android studio File->Settings..->Plugins–>Browse repositores..搜尋GsonFormat,安裝外掛,重啟android studio
用法截圖
其他外掛推薦
安裝方式都有兩種,可以參考上面進行安裝
設計師給我們提供好了各種資源,每個按鈕都要寫一個selector是不是很麻煩?這麼這個外掛就為解決這個問題而生,你只需要做的是告訴設計師們按照規範命名就好了,其他一鍵搞定。
強烈推薦,幫助你在開發階段方便的檢測出記憶體洩露的問題,使用起來更簡單方便。
強大的讓所有人都認識
Android Parcelable code generator
在類中插入實現了Parcelable介面的程式碼。
Android Material Design Icon Generator
將Material Design的圖示匯入到程式中。
這是一個非常強大的圖片匯入外掛。它匯入Android圖示與Material圖示的Drawable ,批量匯入Drawable ,多源匯入Drawable(即匯入某張圖片各種dpi對應的圖片)
Android studio的外掛還有很多很多,選擇一些常用的,別裝太多外掛哦,要是你想要什麼功能的外掛可留言,我為你推薦
常用開源庫
Android是開源的,因此也誕生了一批又一批的開源大牛,然後這些大牛寫了牛逼的開源庫,讓我們今天的工作更簡單,在這裡想大家介紹一些常用的開源庫
網路請求
okhttp
okhttp相關延伸:Fast-Android-Networking、okhttputils、NoHttp
retrofit 這是一個很高深的網路請求,基於okhttp
現在主流的是這兩個,還有volley、xutil等就不在介紹了
資料解析
照片載入
資料庫
重新整理控制元件
事件匯流排
其實為個人不建議使用事件匯流排,因為程式碼邏輯不清楚,後期迭代維護麻煩;觀察者獨有的,觀察者可能會造成介面的膨脹
圓角
圖表
ImageVie手勢操作
照片選擇器
loading框
自定義對話方塊
媒體播放器
- 視訊
- 音訊
- 直播
其他推薦
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,多看底層,知其然知其所以然