Android四大组件介绍PPT演示课件
,Android Fantastic Four,Jacky Cai 2017/07/07,.,Fantastic Four,1,Activity,2,Service,3,Content Provider,4,Broadcast Receiver,5,目录,Contents,Fantastic Four,The Design Pattern Behind,Model represents an object carrying data. It can also have logic to update controller if its data changes. View represents the visualization of the data that model contains. Controller interacts with model and view, controls data flow, updates view when data changes. It keeps view and model separate.,Various Resources,<LinearLayout xmlns:android="http:/schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="horizontal"> <TextView android:id="+id/id" android:layout_width="wrap_content" android:layout_height="wrap_content“ /> <TextView android:id="+id/content" android:layout_width="wrap_content" android:layout_height="wrap_content" /></LinearLayout>,<resources><string name=”app_name”>To Do List</string><color name=”app_background”>#FF0000FF</color><dimen name=”default_border”>5px</dimen><style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> <item name="colorPrimary">color/colorPrimary</item> <item name="colorPrimaryDark">color/colorPrimaryDark</item> <item name="colorAccent">color/colorAccent</item></style></resources>,Resource - Layout,Android supports variety of resources from simple values such as strings and colors to complex resources like layout, images and themes.,Resource - Misc,Fantastic Four,1,Activity,2,Service,3,Content Provider,4,Broadcast Receiver,5,目录,Contents,Activity - Life Cycle,Exit activity while pressing back key, home key or killed in recent apps, what will the activity do correspondingly? What's the impact to KPI test?,Activity - Task,What's the difference between process and task? How many tasks a process may have?Which process is the Activity-Y in figure-2 belonging to?,Task is a collection of activities that users interact with when performing a certain job. The activities are arranged in a stack(back stack) in the order in which each activity is opened. For example. If the user presses the Back button, that new activity is finished and popped off the stack.,How new activity was added to back stack and popped off while pressing Back button and destroyed, the previous one resumes.,Two tasks: Task B receives user interaction in the foreground, while Task A is in the background, waiting to be resumed.,Activity - Hands on,How to start Activity in other application? Which process does the started Activity belong to, caller app or its own?,Prerequisite Install android studio Messenger app see attachmentLet's surfingResource LayoutLogcatActivity LifeCycleMVC - RecyclerViewDevice monitor toolDDMS HW,Fantastic Four,1,Activity,2,Service,3,Content Provider,4,Broadcast Receiver,5,目录,Contents,Service,Service can perform long-running operations in background, it does not provide a user interface. Another application can start a service, and it continues to run in the background even if the user switches to another application. Ways of starting service as follows.,As said earlier that service was working in background, why it will be started in foreground in the music player?What is the difference between these three kinds of services, which way shall we use?,Service can be started in foreground by call startForeground(),Service Life Cycle,Will onStartCommand() be called if service is only bound?,What is thread safe method?What is IPC and RPC?How was IPC implemented through AIDL in android?,Process and Thread,模拟器,真机,Intent and Components,Two Types of Intents Explicit intents - specify the component to start by name (the fully-qualified class name). You'll typically use an explicit intent to start a component in your own, because you know the class name of the activity or service you want to start. (E.g. Intent intent= new Intent(this, B.class) Implicit intents - do not name a specific component, but instead declare a general action to perform, which allows a component from another app to handle it. For example, if you want to show the user a location on a map, you can use an implicit intent to request that another capable app show a specified location on a map. (E.g. Intent i = new Intent(Intent.ACTION_VIEW, data);),An Intent is a messaging object you can use to request an action from another component. Although intents facilitate communication between components in several ways, there are three fundamental use cases:,If no match component was found then what will happen and what we shall do to avoid it?,Intent and Intent Filters,Send an implicit IntentIntent sendIntent = new Intent();sendIntent.setAction(Intent.ACTION_SEND);sendIntent.putExtra(Intent.EXTRA_TEXT, textMessage);sendIntent.setType("text/plain");startActivity(sendIntent);Receive an implicit Intent<activity android:name="ShareActivity"> <intent-filter> <action android:name="android.intent.action.SEND"/> <category android:name="android.intent.category.DEFAULT"/> <data android:mimeType="text/plain"/> </intent-filter></activity>,