AndroidOS为应用程序开发者提供了一整套的移动设备解决方案。为了进行Andorid应用程序的开发,开发者需要了解和熟悉框架原理以及各种类库,包括从java延伸过来的,以及Framework层提供的。
本节,主要介绍一些常用的包,以及类。
本节,主要介绍一些常用的包,以及类。
1.Andorid架构图:
说明:
对于AndroidOS架构,在Google官方的AndroidOS架构图中,从上到下分为了
1)系统App层:提供了系统自带的应用程序;
2)Framework层:框架层,提供应用程序开发框架,百科Java Api和各种组件,例如Activity管理器,包管理器,蓝牙,wifi管理器......等;
3)Native C/C++ 库:许多核心 Android 系统组件和服务(例如 ART 和 HAL)构建自原生代码,需要以 C 和 C++ 编写的原生库。Android 平台提供 Java 框架 API 以向应用显示其中部分原生库的功能。
4)Android Runtime(JVM + Core Lib): Android DVM(Android Dalvik虚拟机);
5)HAL:硬件抽象层(HardWare Abstraction Layer):HAL 包含多个库模块,其中每个模块都为特定类型的硬件组件实现一个接口;
6)Linux内核层:Android是基于Linux内核的。
2. 以“android.”开头的常用的包名以及类名:
1)UI相关的包:
android.view.*: 提供了视图(view)相关的类,列举如下:
android.view.View;
android.view.WindowManager; //窗口管理器
android.view.Window;
android.view.Menu;
android.view.MenuItem;
android.widget.*: 提供了UI控件相关的类,列举如下:
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
2)app应用程序相关的包,
android.app.*:提供App开发相关的类,列举如下:
import android.app.Activity;
import android.app.ActivityManager;
3)Android OS 相关的包:
android.os.*:提供系统相关的类,诸如系统服务、消息传输、IPC机制,列举如下:
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
4)数据访问相关的包:
android.content.*:提供包含各种的对设备上的数据进行访问和发布的类:
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
5)网络相关的包:
android.net.*:提供网络相关的类,列举如下:
import android.net.Uri;
import android.net.http.RequestQueue;
import android.net.http.HttpsConnection;
6)电话,短信等相关的包:
android.telephony :提供与电话,短信相关的类,例如:
import android.telephony.SmsManager;
import android.telephony.SmsMessage;
import android.telephony.cdma.CdmaCellLocation
7)图形图像相关的包:
android.graphics.* :提供底层的图形库,包含画布,颜色过滤,点,矩形,可以将他们直接绘制到屏幕上,例如:
import android.graphics.Bitmap;
import android.graphics.Rect;
import android.graphics.drawable.BitmapDrawable;
8)音频视频相关的包:
android.media.* :提供音频视频相关的类,例如:
import android.media.MediaPlayer;
import android.media.AudioManager;
9)浏览器相关的包:
android.webkit.*:提供浏览器相关的类,例如:
import android.webkit.WebView;
10)地理位置相关的包:
android.location.*:提供地理位置相关的类,例如:
import android.location.Location;
import android.location.LocationManager;
11)蓝牙相关的包:
android.bluetooth.*:提供蓝牙相关的类,例如:
import android.bluetooth.BluetoothA2dp;
3. 以"java."开头的常用的类:
//java.io.*: 文件读写
import java.io.File;
import java.io.FileOutputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.BufferedReader;
//网络请求
import java.net.HttpURLConnection;
import java.net.URL;
//工具类
import java.util.concurrent.TimeUnit;
import java.util.UUID;
import java.util.ArrayList;
import java.util.List;
//数学
import java.math.BigInteger;