Android Dev入門筆記

來源:互聯網
上載者:User

原文地址:http://developer.android.com/guide/topics/fundamentals.html

Overview

The Android operating system is amulti-user Linux system in which each application is a different user. Bydefault, the system assigns each application a unique Linux user ID. The systemsets permission for
all the files in an application so that only the user IDassigned to that application can access them.

 

Each process has its own virtualmachine (VM), so an application’s codes runs in isolation from otherapplications. It’s possible to arrange for two applications to share the sameLinux user ID, in which case
they are able to access each other’s files.Applications with the same user ID can also arrange to run in the same Linuxprocess and share the same VM (the applications must also be signed with thesame certificate).

 

Basic structure:

1.    Code componentsdefine your application

2.    Themanifest file declare components andrequired devices features for application

3.    Resources thatseparate from the application code and allow application to gracefully optimizeits behavior for a variety of device configurations

 

Application Components

Application components are essentialbuilding blocks of an Android application. There are 4 different types ofapplication components. Each type serves a distinct purpose and has a distinctlifecycle that defines
how the component is created and destroyed.

1.   Activities

An activity represents a single screen with a user interface.

2.   Services

A service is a component that runs inthe background to perform long-runningoperations or to perform work for remote processes. A service does not providea user interface. For example, play music in background
or fetch data over thenetwork without blocking user interaction.

3.   Content providers

A content provider manages a sharedset of application data. You canstore data in the file system, an SQLite database, on the web, or any otherpersistent storage location that application can access. Through
the contentprovider, other applications can query or even modify the data. Contentproviders are also useful for reading and writing data that is private toapplication and not shared. For example, Note Pad sample application uses acontent provider to save notes.

4.    Broadcast receivers

A broadcast receiver is a component that responds tosystem-wide broadcast announcements. Manybroadcasts originate from the system. For example, announcing the screen hasturned off, the battery is low, or
picture was captured. Although broadcastreceivers don’t display a user interface, they may create a status barnotification to alert the user when a broadcast event occurs. For instance, itmight initiate a service to perform some work based on the event.

 

A unique aspect of the Android systemdesign is that any application can start another application’s component. Forexample, if application starts the activity in the camera application thatcaptures a photo,
that activity runs in the process that belongs to the cameraapplication, not in your application’s process. Therefore, unlike applicationson most other systems, Android application don’t have single entry point (there’s no main function)

 

Activate Components

Application can’t directly activate acomponent from another application, but the Android system, can.

So, to activate a component inanother application, you must deliver a message to the system that specifiesyour intent to start a particular component. The system then activates thecomponent for you.

 

Activities, services, and broadcastreceivers are activated by an asynchronous  message called an intent. Intents bind individual components to eachother at runtime. For activities and services, an intent
defines the action toperform (for example, to “view” or “send” something) and may specify the URI ofthe data to act on. For broadcast receivers, the intent simply defines theannouncement being broadcast.

 

The other component type, contentprovider, is not activated by intents. Rather, it is activated when targeted bya request from a ContentResolver. The content resolver handles all directtransactions with the
content provider so that the component doesn’t need toand instead calls methods on the ContentResolver object.

 

So, there are ways to activating eachtype of component:

·       Start activity by passing an Intentto startActivity() or startActivityForResult() if you want resultreturned

·       Start service by passing an Intent tostartService() or bindService()

·       Initiate a broadcast by passing anIntent to methods like sendBroadcase(), sendOrderedBroadcase(), or sendStickBroadcast()

·       Perform a query to a content providerby calling query() on a ContentResolver.

 

Manifest File

Before the Android system can startan application component, the system must know that the component exists byreading the application’s AndroidManifest.xmlfile. Application must declare all its components
in this file, which must beat the root of the application project directory.

 

The manifest does a number of thingsin addition to declaring the application’s components, such as:

·       Identify any user permissions theapplication requires

·       Declare the minimum API levelrequired by the application

·       Declare hardware and softwarefeatures used or required by the application, such as a camera, bluetooth ormulti-touch screen.

·       API libraries the application needsto be linked against, such as the Google Maps library.

 

In <application>element, the android:icon attribute pointsto resources for an icon that identifies the application. In the <activity> element, the android:name attribute specifies the fullyqualified class
name of the Activity subclass and android:labelattribute specifies a string to use as the user-visible label for theactivity.

 

You can use an intent to start activities, service and broadcastreceivers by explicitly naming the target component in the intent. However, thereal power of intents: with intent actions, you simply describe
the type ofaction you want to perform and allow the system to find a component on thedevice that can perform the action and start it. If there are multiplecomponents available, then the user selects which one to use.

The way the system identifies thecomponents that can respond to an intent is by comparingthe intent received to the intent filters provided in the manifest file ofother applications on the device. When you
declare a component in manifest, youcan optionally include intent filters that declare the capabilities of thecomponent so it can respond to intents from other application.

 

In order to categorize devices bytheir screen type, Android defines two characteristics for each device: Screen size (the physical dimensions of the screen),and Screen density (the physical density ofthe
pixels on the screen, or dpi – dots per inch).

 

The Android system generalizes theminto select groups that make them easier to target:

The screen sizes are: small, normal,large, and extra large.

The screen densities are: lowdensity, medium density, high density, and extra high density.

 

 For every resource that you include in yourAndroid project, the SDK build tools define a uniqueID, which you can use to reference the resource from your applicationcode or from other resources defined in
XML.

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.