標籤:sam 地址 evel 編程模式 UI ddc get 複用 項目
歡迎Follow我的GitHub, 關注我的CSDN.
我會介紹關於Android的一些有趣的小知識點. 上一篇.
1. Dagger2的開發順序
Module -> Component -> Application
首先模組(Module)建立須要提供的類執行個體, 其次把模組加入到組件(Component)中並提供須要注入的類, 最後把組件加入到應用(Application)中並提供介面.
// 模組@Modulepublic class TestAppModule { private final Context mContext; public TestAppModule(Context context) { mContext = context.getApplicationContext(); } // 提供類執行個體 @AppScope @Provides public Context provideAppContext() { return mContext; } @Provides public WeatherApiClient provideWeatherApiClient() { return new MockWeatherApiClient(); }}// 組件@AppScope@Component(modules = TestAppModule.class) // 注冊模組public interface TestAppComponent extends AppComponent { void inject(MainActivityTest test);}// 應用public class TestWeatherApplication extends WeatherApplication { private TestAppComponent mTestAppComponent; @Override public void onCreate() { super.onCreate(); mTestAppComponent = DaggerTestAppComponent.builder() .testAppModule(new TestAppModule(this)) .build(); } // 提供組件 @Override public TestAppComponent getAppComponent() { return mTestAppComponent; }}
2. JRebel
Android調試工具, 不用編譯, 就能夠重新整理一些項目改動. 只是功能已經被Android Studio 2.0 取代, 等待2.0正式發版.
3. 資料繫結(DataBinding)
DataBinding實現資料與頁面的分離, 更符合物件導向的編程模式.
布局設定
<data> <variable name="weatherData" type="clwang.chunyu.me.wcl_espresso_dagger_demo.data.WeatherData"/> </data> <TextView android:id="@+id/temperature" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerInParent="true" android:layout_marginBottom="@dimen/margin_large" android:layout_marginTop="@dimen/margin_xlarge" android:text="@{weatherData.temperatureCelsius}" android:textAppearance="@style/TextAppearance.AppCompat.Display3" tools:text="10°"/>
邏輯設定
private ActivityMainBinding mBinding; // 頁面綁定類mBinding = DataBindingUtil.setContentView(this, R.layout.activity_main); // 綁定頁面mBinding.weatherLayout.setVisibility(View.VISIBLE); // 使用IdmBinding.setWeatherData(weatherData); // 綁定資料
4. ClassyShark
查看Apk資訊的軟體, 功能很強大, 省去反編譯的步驟, 主要功能:
(1) 在MultiDex中dex的具體資訊.
(2) 使用NativeLibrary的具體資訊.
(3) 類的具體資訊.
(4) 數量統計.
5. CocoaPod安裝
升級Mac系統, 可能會導致Pod命令消失, 須要又一次安裝Pod.
sudo gem install -n /usr/local/bin cocoapods
6. LaunchMode
LaunchMode包括四種模式,
(1) standard, 標準模式, 啟動又一次建立示範範例, 預設.
(2) singleTop, 棧頂複用模式, 位於棧頂, 啟動不會被建立, 調用onNewIntent.
(3) singleTask, 棧內複用模式, 存在不會被建立, 調用onNewIntent.
(4) singleInstance, 單一實例模式, 單獨位於一個任務棧內, 複用.
7. 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"
顯示
8. 自己主動產生DbHelper的指令碼
安裝Jinja2.
pip install Jinja2
設定資料
CLASS RepoString IdString NameString DescriptionString OwnerENDCLASS
下載程式碼程式庫. 產生代碼.
python sql_lite_helper.py -f ~/Desktop/Repo -n SampleGenerate -p me.chunyu -a clwang
9. Gson的序列化參數
有些情況下, Json名稱與變數不同, 須要指定.
@SerializedName("avatar_url") private String avatarUrl;
10. Proguard保留庫
最簡潔的方式是所有保留. 去除警告dontwarn, 保留類keep class.
# 線上更新-dontwarn clwang.chunyu.me.**-keep class clwang.chunyu.me.**{*;}
OK, That’s all! Enjoy It!
Android開發Tips(2)