Android 開發推薦

在互聯網迅速發展的今天,程序員真的有點爛大街了,最近頻繁聽到朋友都工做了,又去轉行作開發的,去培訓機構培訓而後出來長時間找不到工做的。各類跨專業、工做後轉型。互聯網行業競爭愈來愈激烈的今天,高效的快速開發,穩固的基礎纔是從中取勝的關鍵。今天向Android開發者推薦一些開發的插件及其一些開發的技巧,只是我的的一些愚見,但願對你有所幫助。java

代碼的規範

代碼的規範對於一個程序員的長遠發展是至關重要的,android的代碼規範其實和java是基本上同樣的,這裏推薦阿里巴巴java開發手冊,阿里還在不斷更新完善,感謝阿里爲業內人士作的巨大貢獻,這一小步,影響很大。若是全部人都按照這個規範,當你接手別人的項目的時候還在爲這個代碼塊是幹什麼的,項目的迭代去抓耳撓腮嗎???android

Android高效開發工具推薦

Android Studio 自動生成佈局代碼插件LayoutCreator

說到這裏,不少人應該都會比較熟悉JakeWharton大神貢獻的butterknife,相似的依賴注入還有androidannotationsDagger 2,可是用這些真的好嗎???實際上是很影響性能的,這裏以butterknife的源碼來分析ios

ButterKnife.bind過程git

源碼看進去程序員

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) {
   //省略異常處理
 }
}複製代碼

再來看看另一個方法github

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方式導入json

    方式二. 在Android Studio的插件中心搜索LayoutCreator下載安裝android-studio

用法截圖

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,多看底層,知其然知其因此然

我的博客

相關文章
相關標籤/搜索