Android Java 架構基礎[知識點匯總]

來源:互聯網
上載者:User

學習android的過程中,把整個架構的基礎結構牢記很重要,特此摘錄了一些這個架構的一些基礎知識,在使用的過程中按照這個架構學習,事半功倍。

開發過程中參考JDK的文檔和android的sdk文檔可以清楚遇到的很多問題,遇到問題是現在這兩個文檔中一般都能找到原因(安裝sdk的文檔參考http://www.cnblogs.com/2018/archive/2011/02/17/1957356.html)

分層結構Android Layers

Ø Prominent code libraries, including:

– Browser technology from WebKit, the same open source engine powering Mac’s Safari and the iPhone’s Mobile Safari browser. WebKit has become the de facto standard for most mobile platforms.

– Database support via SQLite, an easy-to-use SQL database.

– Advanced graphics support, including 2D, 3D, animation from Scalable Games Language (SGL), and OpenGL ES.

– Audio and video media support from PacketVideo’sOpenCORE, and Google’s own Stagefright media framework.

– Secure Sockets Layer (SSL) capabilities from the Apache project.

Ø An array of managers that provide service

– Activities and views – Telephony

– Windows – Resources

– Location-based services

Ø The Android runtime, which provides:

– Core Java packages for a nearly full-featured Java programming environment. Note that this isn’t a Java ME environment.

– The Dalvik VM employs services of the Linux-based kernel to provide an environment to host Android applications.

Ø A Linux kernel

provides a foundational hardware abstraction layer, as well as core services such as process, memory, and filesystem management. The kernel is where hardware-specific drivers are implemented—capabilities such as Wi-Fi and Bluetooth are here. The Android stack is designed to be flexible, with many optional components that largely rely on the availability of specific hardware on a given device. These components include features such as touch screens, cameras, GPS receivers, and accelerometers.

API Level

API Level is an integer value that uniquely identifies the framework API revision offered by a version of the Android platform.

Platform Version

API Level

Android 2.3

9

Android 2.2

8

Android 2.1

7

Android 2.0.1

6

Android 2.0

5

Android 1.6

4

Android 1.5

3

Android 1.1

2

Android 1.0

1

Intent IntentFilters

Intents and IntentFilters, Android’s innovative navigation and triggering mechanisms.

An Intent is a declaration of need. It’s made up of a number of pieces of information that describe the desired action or service. We’re going to examine the requested action and, generically, the data that accompanies the requested action.

An IntentFilter is a declaration of capability and interest in offering assistance to those in need. It can be generic or specific with respect to which Intents it offers to service.

The action attribute of an Intent is typically a verb,The data component of an Intent is expressed in the form of a URI

The IntentFilter defines the relationship between the Intent and the application. IntentFilters can be specific to the data portion of the Intent, the action portion, or both. IntentFilters also contain a field known as a category. The category helps classify the action.

IntentFilters are often defined in an application’s AndroidManifest.xml file with the <intent-filter> tag.

Activity

An application might have a UI, but it doesn’t have to have one. If it has a UI, it’ll have at least one Activity.

Service

If an application is to have a long lifecycle, it’s often best to put it into a Service.

BroadcastReceiver

If an application wants to receive and respond to a global event, such as a ringing phone or an incoming text message, it must register as a BroadcastReceiver.

ContentProvider

If an application manages data and needs to expose that data to other applications running in the Android environment, you should consider a ContentProvider.

AndroidManifest.xml

A fundamental fact of Android development is that an Android application contains at least one Activity, Service, BroadcastReceiver, or ContentProvider. Some of these elements advertise the Intents they’re interested in processing via the IntentFilter mechanism. All these pieces of information need to be tied together for an Android application to execute. The glue mechanism for this task of defining relationships is the AndroidManifest.xml file.

<service>Servicemight also include the <intent-filter>

<receiver>BroadcastReceivermight have an explicit <intent-filter> tag

<uses-permission>

<application

Core Android packages

java.lang—Core Java language classes

java.io—Input/output capabilities

java.net—Network connections

java.text—Text-handling utilities

java.math—Math and number-manipulation classes

javax.net—Network classes

javax.security—Security-related classes

javax.xml—DOM-based XML classes

org.apache.*—HTTP-related classes

org.xml—SAX-based XML classes

android.app—Android application model access

android.bluetooth—Android’s Bluetooth functionality

android.content—Accessing and publishing data in Android

android.net—Contains the Uri class, used for accessing content

android.gesture—Create, recognize, load, and save gestures

android.graphics—Graphics primitives

android.location—Location-based services (such as GPS)

android.opengl—OpenGL classes

android.os—System-level access to the Android environment

android.provider—ContentProvider-related classes

android.telephony—Telephony capability access, including support for both Code Division Multiple Access (CDMA) and Global System for Mobile communication (GSM) devices

android.text—Text layout

android.util—Collection of utilities for logging and text manipulation, including XML

android.view—UI elements

android.webkit—Browser functionality

android.widget—More UI elements

Application Fundamentals

SDK的文檔目錄file:///。。。/android-sdk-windows/docs/guide/topics/fundamentals.html 有詳細的說明

Activity lifecycle

As an activity transitions from state to state, it is notified of the change by calls to the following protected methods:

voidonCreate(Bundle savedInstanceState)
void onStart()
void onRestart()
void onResume()
void onPause()
void onStop()
void onDestroy()

由Android SDK/NDK預設管理的目錄和檔案:

AndroidManifest.xml

軟體的android關鍵設定檔

涉及安全、啟動的Activty等

default.properties

API Level的設定等

proguard.cfg

代碼混淆使用

介面資源和存取碼

res gen 兩個字目錄下的檔案

res下有如下類別

res/anim:用XML表示的基於幀的動畫

res/drawable:不同規格的表徵圖、圖片等,drawable-hdpidrawable-ldpidrawable-mdpi三個子目錄

res/layout:視圖對象的XML表示

res/values:strings, colors, styles, dimensions, arrays的XML表示

res/xml:User-defined XML files that are compiled into a binary representation

res/raw:Arbitrary and uncompiled files that can be added

gen res中加入的資源在gen中產生存取碼R.java

assets

資料等檔案

android.content.res.AssetManager asset = Application.getAssets()這個類輔助訪問

src

JAVA代碼

NDK

Jniobj libs目錄

Jni: 放C/C++代碼

Obj/libs:是c/c++的編譯obj檔案和so庫

在這些預設檔案和目錄的基礎上可以加入自己的需要管理的目錄或檔案

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.