乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      一個優(yōu)秀的Android應用從建項目開始

       昵稱13398812 2016-01-14



      1.項目結構


      現(xiàn)在的MVP模式越來越流行。就默認采用了。

      如果項目比較小的話:


      • app——Application Activity Fragment Presenter等的頂級父類

      • config——API,常量表等

      • model——數(shù)據(jù)層

      • entities——數(shù)據(jù)模型

      • presenter——MVP的P

      • view——MVP的V

      • utils——工具類集合

      • widget——各個可復用View集合


      如果項目比較大,上面的方式一定會造成presenter和view里近百個文件。看瞎眼系列。推薦下列方式:


      • app

      • config

      • model

        • entities

      • module——將界面層以功能模塊分配包。

        • launch

        • main

        • account

        • news

        • music

        • ……

      • utils

      • widget


      2.配置主題


      對于不遵守Material Design的項目無視這一步。


      1.先在color.xml中寫好需要的顏色:


      'Orange'>#ff5722

      'DeepPurple'>#673AB7

      'DeepPurple900'>#311B92

      'White'>#fff

      'Gray'>#888888

      'Gray100'>#dddddd

      'Gray600'>#999999


      注意color.xml是配色表。應該是描述顏色而不是對字體顏色,背景顏色等的定義。這樣能防止相近的顏色重復定義。而導致界面顏色不統(tǒng)一。


      2.在style.xml里定義主題:




      在res目錄下,創(chuàng)建一個values-v21目錄,再創(chuàng)建一個style.xml:



      然后在AndroidManifest.xml文件中修改application的theme屬性為上面定義的AppTheme.即可實現(xiàn)沉浸式狀態(tài)欄。


      然后關于Theme與Toolbar的詳細設置參考我另兩篇博客:


      http://www.cnblogs.com/Jude95/p/4369816.html

      http://www.cnblogs.com/Jude95/p/4370176.html


      3.依賴庫與SDK


      必選的庫:

      gradle-retrolambda——Android的lambda表達式插件

      fresco——Android最屌圖片加載庫

      material-dialogs ——Material Dialog向下兼容庫

      material-ripple——Ripple向下兼容庫

      fastjson——最快JSON解析

      butterknife——View注解庫和配套插件android-butterknife-zelezny

      ActiveAndroid——數(shù)據(jù)庫注解庫。

      RxAndroid——Rx函數(shù)響應式編程中文文檔

      retrofit,okhttp,sqlbrite,okio——Square家的精品多啊

      compile 'com.android.support:design:23.0.1'——谷歌Material Design控件庫


      下面安利幾個自己寫的庫,如果有什么建議歡迎交流:

      Utils——Android各種小功能集合

      RollViewPager——自動輪播使用方便的ViewPager

      EasyRecyclerView——支持下拉上拉刷新等功能全面的RecyclerView

      SwipeBackHelper——Activity滑動關閉支持庫,能達到微信效果


      嘗試了很多,這幾個是現(xiàn)在常用的。

      融云——即時通訊

      友盟——數(shù)據(jù)統(tǒng)計,推送,意見反饋,自動更新,第三方分享及登錄,社區(qū)

      七?!拼鎯?/p>

      Mob——短信驗證

      Bmob——做后臺不求人


      依賴這一大堆庫和SDK以后。建議在合適的時機初始化他們,而不是全堆在Application的onCreate()里面。這樣會導致啟動時間過長。啟動后也會較卡。雖然是不會影響功能正常使用。


      4.配置Gradle


      某些SDK運行時需要檢查簽名是否正確。所以在debug模式時也必須用正式KEY簽名。而把簽名放進版本控制不是明智的做法。所以推薦下面的做法:

      在app的gradle加入下面代碼


      Properties props = new Properties()

      props.load(new FileInputStream(file('signing.properties')))

      android {

      signingConfigs {

      release{

      keyAlias props['KEY_ALIAS']

      keyPassword props['KEY_PASSWORD']

      storeFile file(props['KEYSTORE_FILE'])

      storePassword props['KEYSTORE_PASSWORD']

      }

      }

      buildTypes {

      release {

      signingConfig signingConfigs.release

      }

      debug {

      signingConfig signingConfigs.release

      }

      }

      }


      在app的gradle文件同級目錄新建signing.properties文件,里面填入你的key的相應信息


      KEYSTORE_FILE = C:\\Users\\Mr.Jude\\Documents\\Android\\HelloWorld.jks

      KEYSTORE_PASSWORD = xxxxxx

      KEY_ALIAS = xxxxxx

      KEY_PASSWORD = xxxxxx


      將signing.properties添加進忽略目錄。

      其他人pull下來代碼后。自己新建signing.properties填入相應信息后即可編譯成功。


      5.制定開發(fā)規(guī)范


      為了避免合作開發(fā)寫的代碼風格迥異。或做出了多套開發(fā)模式。下面是個例子。畢竟是為了高效開發(fā)而制定的。適合自己項目的才是最好。

      所有Activity繼承BaseActivity

      所有Fragment繼承BaseFragment

      所有Presenter繼承BasePresenter

      這樣利于生命周期管理。也可以方便的全局修改。

      命名,例

      AccountFragment

      UserDetailActivity


      layout命名,例

      activity_collection

      fragment_account

      item_person

      include_toolbar

      view_progress


      不過對于龐大項目的開發(fā)。近百個activity開頭的layout列表還是會眼瞎。所以那種情況會在前面加上模塊名。


      id命名,例

      btn_send

      tv_name

      list_persons

      et_password


      然后用butterknife的插件生成變量會自動將下劃線變成駝峰命名


      變量命名:以m開頭。例mAdapter使用時按一個m全都出來了

      方法命名:與其寫好名字不如寫好注釋。= =。


      TextView使用官方標準字體




      style='@style/TextAppearance.AppCompat.Display4'

      style='@style/TextAppearance.AppCompat.Display3'

      style='@style/TextAppearance.AppCompat.Display2'

      style='@style/TextAppearance.AppCompat.Display1'

      style='@style/TextAppearance.AppCompat.Headline'

      style='@style/TextAppearance.AppCompat.Title'

      style='@style/TextAppearance.AppCompat.Subhead'

      style='@style/TextAppearance.AppCompat.Body2'

      style='@style/TextAppearance.AppCompat.Body1'

      style='@style/TextAppearance.AppCompat.Caption'

      style='@style/TextAppearance.AppCompat.Button'


      Button使用Material Design標準樣式



      style='@style/Widget.AppCompat.Button'

      style='@style/Widget.AppCompat.Button.Borderless'

      style='@style/Widget.AppCompat.Button.Borderless.Colored'

      style='@style/Widget.AppCompat.Button.Small'


      定好網(wǎng)絡請求寫法。文件存儲方式與位置。寫好項目所使用的類庫框架用法。

        本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內容均由用戶發(fā)布,不代表本站觀點。請注意甄別內容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內容,請點擊一鍵舉報。
        轉藏 分享 獻花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多