Android開發(fā)Tips(2)

歡迎Follow我的GitHub, 關(guān)注我的簡(jiǎn)書. 其余參考Android目錄.

Android

本文的合集已經(jīng)編著成書荣茫,高級(jí)Android開發(fā)強(qiáng)化實(shí)戰(zhàn)侧戴,歡迎各位讀友的建議和指導(dǎo)故源。在京東即可購(gòu)買:https://item.jd.com/12385680.html

Android

我會(huì)介紹關(guān)于Android的一些有趣的小知識(shí)點(diǎn). 上一篇. 第三篇.


1. Dagger2的開發(fā)順序

Module -> Component -> Application
首先模塊(Module)創(chuàng)建需要提供的類實(shí)例, 其次把模塊添加到組件(Component)中并提供需要注入的類, 最后把組件添加到應(yīng)用(Application)中并提供接口.

// 模塊
@Module
public class TestAppModule {
    private final Context mContext;

    public TestAppModule(Context context) {
        mContext = context.getApplicationContext();
    }

    // 提供類實(shí)例
    @AppScope
    @Provides
    public Context provideAppContext() {
        return mContext;
    }

    @Provides
    public WeatherApiClient provideWeatherApiClient() {
        return new MockWeatherApiClient();
    }
}

// 組件
@AppScope
@Component(modules = TestAppModule.class) // 注冊(cè)模塊
public interface TestAppComponent extends AppComponent {
    void inject(MainActivityTest test);
}

// 應(yīng)用
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調(diào)試工具, 不用編譯, 就可以刷新一些項(xiàng)目修改. 不過(guò)功能已經(jīng)被Android Studio 2.0 代替, 等待2.0正式發(fā)版.


3. 數(shù)據(jù)綁定(DataBinding)

DataBinding實(shí)現(xiàn)數(shù)據(jù)與頁(yè)面的分離, 更符合面向?qū)ο蟮木幊棠J?
布局設(shè)置

    <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°"/>

邏輯設(shè)置

private ActivityMainBinding mBinding; // 頁(yè)面綁定類
mBinding = DataBindingUtil.setContentView(this, R.layout.activity_main); // 綁定頁(yè)面
mBinding.weatherLayout.setVisibility(View.VISIBLE); // 使用Id
mBinding.setWeatherData(weatherData); // 綁定數(shù)據(jù)

4. ClassyShark

查看Apk信息的軟件, 功能非常強(qiáng)大, 省去反編譯的步驟, 主要功能:
(1) 在MultiDex中dex的詳細(xì)信息.
(2) 使用NativeLibrary的詳細(xì)信息.
(3) 類的詳細(xì)信息.
(4) 數(shù)量統(tǒng)計(jì).

插件

5. CocoaPod安裝

升級(jí)Mac系統(tǒng), 可能會(huì)導(dǎo)致Pod命令消失, 需要重新安裝Pod.

sudo gem install -n /usr/local/bin cocoapods

6. LaunchMode

LaunchMode包含四種模式,
(1) standard, 標(biāo)準(zhǔn)模式, 啟動(dòng)重新創(chuàng)建示例, 默認(rèn).
(2) singleTop, 棧頂復(fù)用模式, 位于棧頂, 啟動(dòng)不會(huì)被創(chuàng)建, 調(diào)用onNewIntent.
(3) singleTask, 棧內(nèi)復(fù)用模式, 存在不會(huì)被創(chuàng)建, 調(diào)用onNewIntent.
(4) singleInstance, 單實(shí)例模式, 單獨(dú)位于一個(gè)任務(wù)棧內(nèi), 復(fù)用.


7. TextView的標(biāo)準(zhǔn)字體

樣式

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"

顯示

字號(hào)

8. 自動(dòng)生成DbHelper的腳本

下載地址
安裝Jinja2.

pip install Jinja2

設(shè)置數(shù)據(jù)

CLASS Repo
String Id
String Name
String Description
String Owner
ENDCLASS

下載代碼庫(kù). 生成代碼.

python sql_lite_helper.py -f ~/Desktop/Repo -n SampleGenerate -p me.chunyu -a clwang

9. Gson的序列化參數(shù)

有些情況下, Json名稱與變量不同, 需要指定.

@SerializedName("avatar_url") private String avatarUrl;

10. Proguard保留庫(kù)

最簡(jiǎn)潔的方式是全部保留. 去除警告dontwarn, 保留類keep class.

# 在線更新
-dontwarn clwang.chunyu.me.**
-keep class clwang.chunyu.me.**{*;}

OK, That's all! Enjoy It!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末魏烫,一起剝皮案震驚了整個(gè)濱河市怖亭,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌挚瘟,老刑警劉巖叹谁,帶你破解...
    沈念sama閱讀 222,590評(píng)論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件迟杂,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡本慕,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,157評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門侧漓,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)锅尘,“玉大人,你說(shuō)我怎么就攤上這事布蔗√傥ィ” “怎么了?”我有些...
    開封第一講書人閱讀 169,301評(píng)論 0 362
  • 文/不壞的土叔 我叫張陵纵揍,是天一觀的道長(zhǎng)顿乒。 經(jīng)常有香客問(wèn)我,道長(zhǎng)泽谨,這世上最難降的妖魔是什么璧榄? 我笑而不...
    開封第一講書人閱讀 60,078評(píng)論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮吧雹,結(jié)果婚禮上骨杂,老公的妹妹穿的比我還像新娘。我一直安慰自己雄卷,他們只是感情好搓蚪,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,082評(píng)論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著丁鹉,像睡著了一般妒潭。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上揣钦,一...
    開封第一講書人閱讀 52,682評(píng)論 1 312
  • 那天雳灾,我揣著相機(jī)與錄音,去河邊找鬼拂盯。 笑死佑女,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的谈竿。 我是一名探鬼主播团驱,決...
    沈念sama閱讀 41,155評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼空凸!你這毒婦竟也來(lái)了嚎花?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 40,098評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤呀洲,失蹤者是張志新(化名)和其女友劉穎紊选,沒(méi)想到半個(gè)月后啼止,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,638評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡兵罢,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,701評(píng)論 3 342
  • 正文 我和宋清朗相戀三年献烦,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片卖词。...
    茶點(diǎn)故事閱讀 40,852評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡巩那,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出此蜈,到底是詐尸還是另有隱情即横,我是刑警寧澤,帶...
    沈念sama閱讀 36,520評(píng)論 5 351
  • 正文 年R本政府宣布裆赵,位于F島的核電站东囚,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏战授。R本人自食惡果不足惜页藻,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,181評(píng)論 3 335
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望植兰。 院中可真熱鬧惕橙,春花似錦、人聲如沸钉跷。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,674評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)爷辙。三九已至彬坏,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間膝晾,已是汗流浹背栓始。 一陣腳步聲響...
    開封第一講書人閱讀 33,788評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留血当,地道東北人幻赚。 一個(gè)月前我還...
    沈念sama閱讀 49,279評(píng)論 3 379
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像臊旭,于是被迫代替她去往敵國(guó)和親落恼。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,851評(píng)論 2 361

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,321評(píng)論 25 707
  • 一离熏、概述 Activity 作為與用戶交互的一個(gè)窗口佳谦,是使用非常頻繁的一個(gè)基本組件。Android系統(tǒng)是通過(guò)Act...
    三也視界閱讀 2,244評(píng)論 3 11
  • 本文出自 “阿敏其人” 簡(jiǎn)書博客啥刻,轉(zhuǎn)載或引用請(qǐng)注明出處。 Android-Activity所應(yīng)該了解的大概就這樣咪笑。...
    阿敏其人閱讀 11,294評(píng)論 3 34
  • 憤怒是一塊黑石可帽, 盤繞在我的胸口, 我問(wèn)它窗怒,你是誰(shuí)啊蘑拯, 它說(shuō),我是你兜粘。 那么孩子, 你為何如此憤怒弯蚜? 告訴我孔轴,它來(lái)...
    SharonZhou閱讀 275評(píng)論 0 1
  • ①感賞我喜歡自己能量純純的時(shí)候,能量純純的時(shí)候心情特別開心碎捺,說(shuō)話特別幽默路鹰,笑容特別燦爛,樣子特別可愛(ài)收厨。 ②感賞我聽(tīng)...
    心靈驛站園閱讀 83評(píng)論 0 0