- 名词解释:
View: usually UI widgets such as a button or text field
ViewGroup: invisible view container that define how the child views are laid out, such as in a grid or a vertical list
Activity: a single screen in your app
Intent: runtime binding between separate components (such as two activities). An Intent can be explicit in order to start a specific component (a specific Activity instance) or implicit in order to start any component that can handle the intended action (such as “capture a photo”).Bundle: a blob of key-value pairsFragment: a nested activity that can define its own layout and manage its own lifecycle
- Layout:
layout_file.xml中的属性:
xmlns:android=xxx: 声明xml名称空间androidandroid:id="@+id/edit_message": 声明id属性,使代码中可引用它
@: resource object, an unique integer for an resource (bitmap, layout file, string) defined in your projects’gen/R.javafile
+: create
id: resource type
edit_message: resource name, other resource type can use the same name- 引用resource object时还可加上namespace,如android:hint="@**android:**string/edit_message",这时引用的是
android.R类
每个layout_file.xml会被编译成一个View,可在Activity的onCreate()中load它:
setContentView(R.layout.layout_file)可在layout_file.xml中定义view并赋予id:
<Button android:id="@+id/my_button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/my_button_text" />然后在代码中create它:
Button myButton = (Button) findViewById(R.id.my_button);View的属性layout_something定义其在ViewGroup中的layout。
layout_width和layout_height是所有View都须定义的,可定义值:wrap_content: tells your view to size itself to the dimensions required by its contentfill_parent/match_parent(rename in API Level 8): tells your view to become as big as its parent view group will allow- n
dp: density-independent pixel units
- Activity lifecycle:
- Created/Started是临时状态,Resumed/Paused/Stopped是可停留状态。Resumed指正常running,Paused指失去焦点被其他组件部分遮挡,Stopped指被其他组件完全遮挡。
- 在onDestroy()前都会调onPause()和onStop(),除非在onCreate()直接调finish()
AndroidManifest.xml:
所有Activity得在
AndroidManifest.xml中用<activity>元素声明启动app时进入的main activity声明时需要
<intent-filter>:<intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter>
android icon size: 36×36 (ldpi), 48×48 (mdpi), 72×72 (hdpi), 96×96 (xhdpi)
读取AndroidManifest.xml中application的meta-data:
try { ApplicationInfo ai = this.getPackageManager().getApplicationInfo(this.getPackageName(), PackageManager.GET_META_DATA); String channelName = ai.metaData.getString("UMENG_CHANNEL"); if (channelName == null) return ""; return channelName; } catch (NameNotFoundException ex) { Log.e("META", "Can not find the application info of" + mActivity.getPackageName()); return ""; }
参考: