成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

一個優秀的Android應用從建項目開始

移動開發
項目大小,構建的思路都會不一樣。快來看看別人是怎么起步的!

[[146519]]

1.項目結構

現在的MVP模式越來越流行。就默認采用了。
如果項目比較小的話:

  • app——Application Activity Fragment Presenter等的***父類
  • config——API,常量表等
  • model——數據層
    • bean——數據模型
  • presenter——MVP的P
  • view——MVP的V
  • utils——工具類集合
  • widget——各個可復用View集合

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

  • app
  • config
  • model
    • bean
  • module——將界面層以功能模塊分配包。
    • launch
    • main
    • account
    • news
    • music
    • ……
  • utils
  • widget

2.配置主題

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

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

  1. <resources> 
  2.     <color name="Orange">#ff5722</color> 
  3.     <color name="DeepPurple">#673AB7</color> 
  4.     <color name="DeepPurple900">#311B92</color> 
  5.     <color name="White">#fff</color> 
  6.     <color name="Gray">#888888</color> 
  7.     <color name="Gray100">#dddddd</color> 
  8.     <color name="Gray600">#999999</color> 
  9. </resources> 

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

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

  1. <style name="AppTheme.Base" parent="Theme.AppCompat.Light.NoActionBar"
  2.     <!-- Customize your theme here. --> 
  3.     <item name="colorPrimary">@color/DeepPurple</item> 
  4.     <item name="colorPrimaryDark">@color/DeepPurple900</item> 
  5.     <item name="colorAccent">@color/Orange</item> 
  6. </style> 
  7.  
  8. <style name="AppTheme" parent="AppTheme.Base"></style> 

在res目錄下,創建一個values-v21目錄,再創建一個style.xml:

  1. <style name="AppTheme" parent="AppTheme.Base"
  2.     <item name="android:windowDrawsSystemBarBackgrounds">true</item> 
  3.     <item name="android:statusBarColor">?colorPrimaryDark</item> 
  4. </style> 

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

然后關于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——數據庫注解庫。
compile 'com.android.support:design:22.2.0'——谷歌Material Design控件庫

下面安利幾個自己寫的庫,如果有什么建議歡迎交流:
Utils——Android各種小功能集合
RollViewPager——自動輪播使用方便的ViewPager
EasyRecyclerView——支持下拉上拉刷新等功能全面的RecyclerView
RequestVolley——僅僅是讓Volley方便一點

嘗試了很多,這幾個是現在常用的。
融云——即時通訊
友盟——數據統計,推送,意見反饋,自動更新,第三方分享及登錄,社區
七牛——云存儲
Mob——短信驗證
Bmob——做后臺不求人

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

4.配置Gradle

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

  1. Properties props = new Properties() 
  2. props.load(new FileInputStream(file("signing.properties"))) 
  3. android { 
  4.     signingConfigs { 
  5.         release{ 
  6.             keyAlias props['KEY_ALIAS'
  7.             keyPassword props['KEY_PASSWORD'
  8.             storeFile file(props['KEYSTORE_FILE']) 
  9.             storePassword props['KEYSTORE_PASSWORD'
  10.         } 
  11.     } 
  12.     buildTypes { 
  13.         release { 
  14.             signingConfig signingConfigs.release 
  15.         } 
  16.         debug { 
  17.             signingConfig signingConfigs.release 
  18.         } 
  19.     } 

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

  1. KEYSTORE_FILE = C:\\Users\\Mr.Jude\\Documents\\Android\\HelloWorld.jks 
  2. KEYSTORE_PASSWORD = xxxxxx 
  3. KEY_ALIAS = xxxxxx 
  4. KEY_PASSWORD = xxxxxx 

將signing.properties添加進忽略目錄。
其他人pull下來代碼后。自己新建signing.properties填入相應信息后即可編譯成功。

5.制定開發規范

為了避免合作開發寫的代碼風格迥異。或做出了多套開發模式。下面是個例子。畢竟是為了高效開發而制定的。適合自己項目的才是***。
所有Activity繼承BaseActivity
所有Fragment繼承BaseFragment
所有Presenter繼承BasePresenter
這樣利于生命周期管理。也可以方便的全局修改。
命名,例
AccountFragment
UserDetailActivity

layout命名,例
activity_collection
fragment_account
item_person
include_toolbar
view_progress
不過對于龐大項目的開發。近百個activity開頭的layout列表還是會眼瞎。所以那種情況會在前面加上模塊名。

id命名,例
btn_send
tv_name
list_persons
et_password
然后用butterknife的插件生成變量會自動將下劃線變成駝峰命名

變量命名:以m開頭。例mAdapter使用時按一個m全都出來了
方法命名:與其寫好名字不如寫好注釋。= =。

TextView使用官方標準字體

TextView.png
  1. style="@style/TextAppearance.AppCompat.Display4" 
  2. style="@style/TextAppearance.AppCompat.Display3" 
  3. style="@style/TextAppearance.AppCompat.Display2" 
  4. style="@style/TextAppearance.AppCompat.Display1" 
  5. style="@style/TextAppearance.AppCompat.Headline" 
  6. style="@style/TextAppearance.AppCompat.Title" 
  7. style="@style/TextAppearance.AppCompat.Subhead" 
  8. style="@style/TextAppearance.AppCompat.Body2" 
  9. style="@style/TextAppearance.AppCompat.Body1" 
  10. style="@style/TextAppearance.AppCompat.Caption" 
  11. style="@style/TextAppearance.AppCompat.Button" 

Button使用Material Design標準樣式

Button.png
  1. style="@style/Widget.AppCompat.Button" 
  2. style="@style/Widget.AppCompat.Button.Borderless" 
  3. style="@style/Widget.AppCompat.Button.Borderless.Colored" 
  4. style="@style/Widget.AppCompat.Button.Small" 

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

 

好了,下面就開始正式開發吧!

責任編輯:倪明 來源: 簡書
相關推薦

2015-07-28 11:02:15

androidapp開發

2014-10-21 10:25:50

程序員

2024-04-15 12:54:00

ReactVue列表邏輯

2016-09-26 17:26:20

2013-07-01 11:01:22

API設計API

2009-05-13 09:20:12

Google App 應用收費

2017-05-08 14:27:49

PHP框架函數框架

2023-05-05 11:42:21

2015-03-19 14:50:27

編程拖拽編程合格程序員

2009-05-20 09:49:15

2022-03-14 10:02:03

散列表鏈表哈希表

2021-06-08 07:32:01

框架Mock測試

2021-04-11 09:00:13

Fes.js前端

2019-09-03 11:32:36

PythonLinux操作系統

2012-06-04 18:02:56

社區

2020-04-07 15:12:07

微服務架構數據

2013-08-15 10:00:07

產品產品經理優秀的產品

2022-03-24 14:58:02

Java散列表編程語言

2017-09-07 19:21:20

Java語言Iodine

2014-01-26 14:24:25

開源項目
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲欧美精品 | 黄色大片观看 | www.色.com| 人人爱干 | 久在线 | av在线免费网 | 久久国产精品-国产精品 | 四虎永久免费影院 | 成人国产精品久久 | 午夜电影日韩 | 久久国产精品精品 | 亚洲黄色av| 日本三级在线网站 | 日本久久精品视频 | 国产精品日韩在线 | 日本特黄特色aaa大片免费 | 999国产视频 | 99国产精品久久久久老师 | 色综合久久天天综合网 | 亚洲免费视频网站 | 国产精品影视 | 2021天天躁夜夜看 | 一区二区三区免费 | 国产日韩欧美在线一区 | 亚洲国产激情 | 国产精品久久久久久吹潮日韩动画 | 欧美一级黄色片免费观看 | 中文字幕精品一区二区三区精品 | 精品区一区二区 | 狠狠干网站| 999国产视频 | 亚洲人成人一区二区在线观看 | 亚洲一区三区在线观看 | 日韩久久综合网 | 国产在线观看网站 | 中文字幕一区二区三区不卡 | 午夜成人免费电影 | 欧美乱人伦视频 | 国产精品久久国产精品 | 国产视频一区在线 | 91精品亚洲 |