java后端開發學習android之路一(QMUI_Android demo源碼分析)

前提

熟悉java語言的基礎知識,了解常見的設計模式

安卓基礎知識

建議看這個文檔的第一章就夠了,google出的安卓教程,了解activity、fragment和布局文件。
官方文檔翻譯

源碼學習階段

界面UI

建議直接學習QMUI_Android的源碼的demo
QMUI_Android
直接在android studio里學習打開項目,找到AndroidManifest.xml這個文件,這個文件是整個項目的入口,里面定義了那個Activity是起始頁面。關鍵代碼如下:

 <application
        android:name=".QDApplication"
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:networkSecurityConfig="@xml/network_security_config"
        android:theme="@style/AppTheme"
        tools:ignore="AllowBackup,GoogleAppIndexingWarning"
        tools:targetApi="n">

        <activity
            android:name=".QDMainActivity"
            android:configChanges="orientation|keyboardHidden|screenSize"
            android:label="@string/app_name"
            android:windowSoftInputMode="stateAlwaysHidden|adjustResize"/>
        <activity
            android:name=".activity.LauncherActivity"
            android:theme="@android:style/Theme.Translucent.NoTitleBar">
            <intent-filter>
                <action android:name="android.intent.action.MAIN"/>
                <category android:name="android.intent.category.LAUNCHER"/>
            </intent-filter>
        </activity>

QDApplication 集成了Android的基礎類android.app.Application類, 定義了Application的入口,也是QMUI初始化的地方
這個demo的入口是LauncherActivity,但是這個activity啟動后就直接跳到QDMainActivity,所以開始先忽略它,直接看QDMainActivity

@FirstFragments(
        value = {
                HomeFragment.class,
                QDArchTestFragment.class,
                QDArchSurfaceTestFragment.class,
                QDNotchHelperFragment.class,
                QDWebExplorerFragment.class,
                QDContinuousNestedScroll1Fragment.class
        })
@DefaultFirstFragment(HomeFragment.class)
@LatestVisitRecord
public class QDMainActivity extends BaseFragmentActivity {

    @Override
    protected int getContextViewId() {
        return R.id.qmuidemo;
    }


    public static Intent createWebExplorerIntent(Context context, String url, String title) {
        Bundle bundle = new Bundle();
        bundle.putString(EXTRA_URL, url);
        bundle.putString(EXTRA_TITLE, title);
        return of(context, QDWebExplorerFragment.class, bundle);
    }

    public static Intent of(@NonNull Context context,
                            @NonNull Class<? extends QMUIFragment> firstFragment) {
        return QMUIFragmentActivity.intentOf(context, QDMainActivity.class, firstFragment);
    }

    public static Intent of(@NonNull Context context,
                            @NonNull Class<? extends QMUIFragment> firstFragment,
                            @Nullable Bundle fragmentArgs) {
        return QMUIFragmentActivity.intentOf(context, QDMainActivity.class, firstFragment, fragmentArgs);
    }
}

這樣一看很難懂,其實關鍵就是上面那行注解,我找到了不用注解的版本,更容易理解

ublic class MainActivity extends QMUIFragmentActivity {


    @Override
    protected int getContextViewId() {
        return R.id.demo;
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        if (savedInstanceState == null) {
            BaseFragment fragment = new HomeFragment();

            getSupportFragmentManager()
                    .beginTransaction()
                    .add(getContextViewId(), fragment, fragment.getClass().getSimpleName())
                    .addToBackStack(fragment.getClass().getSimpleName())
                    .commit();
        }
    }

}

這樣就清晰多了,這個activity其實也沒干啥,就是把HomeFragment加載了進來,HomeFragmen就是你允許demo的主界面了。未完待續

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 請允許我借鑒前輩們的東西~~~~ 感激不盡~~~~~ 以下為Android 框架排行榜 么么噠~ Android...
    嗯_新閱讀 2,110評論 3 32
  • 介紹自己負責的部分,如何實現的。 自定義view viewGroup activity的啟動流程 事件傳遞及滑動沖...
    東經315度閱讀 1,242評論 1 4
  • 1.什么是Activity?問的不太多,說點有深度的 四大組件之一,一般的,一個用戶交互界面對應一個activit...
    JoonyLee閱讀 5,755評論 2 51
  • 哎呀呀 ,馬上就要面臨找工作了,媛媛心里緊張呀. 作為一個即將畢業的Android程序媛,開始面臨找工作了,...
    左神話閱讀 4,824評論 7 59
  • 在這座沿海城市還是小漁村的時候,我的父親就生活在此,如果說糯米雞和豉油燒雞是屬于我對父親給予的深刻的愛的童年記憶的...
    阿梁哥閱讀 603評論 0 6