南邮安卓期末复习2021-1

// 修改了几处错误 + markdown语法修复~

复习资料:
NIIT教材
闭卷考试,试卷共4页,题型:
1、单项选择题(10道,每道2分);
2、判断题(10道,每道2分);
3、简答题(6道,每道5分);
4、编程题(4道,7+7+7+9分)
注:题目均为英文,要求回答也使用英文;

基础:

安卓核心组件?安卓的key feature?哪些核心组件没有 UI 界面?

Activity Service Broadcast Receiver Content Provider

Integrated browser
Sqlite
Media support
Wireless services: bluetooth wifi
Dalvik virtual machine(DVM)
Application framework
Rich development environment

Android Architecture分为几层?每一层都有些什么内容?(尤其是下面2层要清楚)

Applications: this layer correspond to the core applications part of the software stack
Application framework: this layer along with the libraries and android runtime layer corresponds to the middleware part of the software stack
Libraries and android runtime: this layer along with the application framework layer corresponds to the middleware part of the software stack
Libraries:
OpenGL ES
Meida framework
Surface manager
Sqlite
WebKit
libc
android runtime:
core libraries
DVM
Linux kernel: correspond to the operating system part of the android software stack
Display driver
wifi driver
camera driver
power management
flash memory driver
binder driver
keypad driver
audio drivers

安卓用什么数据库?有什么特点?

Sqlite
Open-src
standard
Light
Single-tier
No server
Loose-type
App-process

安卓应用开发是基于什么语言的?安卓App运行的Java虚拟机简称是什么?

Java and C++
DVM(Dalvik virtual machine)

R.java 是什么文件?干什么用的?

Files saved in res directory will be compiled and given resource ID, which will be saved in R.java file. We can access resources in the res directory by R.java

安卓的UI用户点击后,运行哪一个事件处理器?

Interface: View.OnClickListener method: OnClick(view)

side_tip.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        drawerLayout.openDrawer(navigationView);
    }
});
Intent 有几个组件?各是干什么用的?哪些组件是必须存在的,哪些是可选的,在Manifest中 intent filter 是如何声明的?

Component name: specify a fully qualified class name of the target component
Action: the action that needs to be performed
Data: the data to operate on
Category: the behavior of the target app component
Extras: extra information in the form of key-value pairs that must be delivered to the components that handle the intent
Flags: flags that control various aspects related to activating a new component

In the <intent-filter>, <action> is mandatory, <category> and <data> are optional

<activity>
<intent-filter>
<action android:name=”android.intent.action.MAIN”/>
<category android:name=”android.intent.category.LAUNCHER”/>
</intent-filter>
</activity>

Activity的生命周期有哪些状态?状态转换时调用的方法各是什么?

书上图片
Running stopped paused

安卓日志类 Log有哪些方法?各用于什么输出什么信息?

Log.e(): errors
Log.w(): warnings
Log.i(): info
Log.d(): debug
Log.v(): verbose

<uses-permission> 是什么?做什么用的?

A label that represents a permission action in AndoridManifest.xml
Declare the permissions required by the android application

核心机制:

什么是SharedPreference,支持存放哪些类型的数据?

Shared preferences are lightweight mechanism used to store key-value pairs of primitive data types
Boolean,Float,Int,Long,String

什么是Content Provider,创建一个Content Provider的大致步骤是什么?里面的联系人 URI 形式是什么样的?

Content provider can store and retrieve data making it accessible to all apps

  1. Create a custom content provider
  2. Specify the URI of a content provider
  3. Implement query handling methods
  4. Access the data exposed by a content provider
  5. Handle requests for the MIME type of data
  6. Register a custom content provider
public static final Uri CONTENT_URI = Uri.parse(“content://<package name>.provider.<provider class>/<table name>/<position>”);
什么是Broadcast Receiver,创建它需要重写哪些方法?

Broadcast receiver is a component of an app that responds to system-wide broadcast announcements

onReceive()

什么是Intent、Intent Filter,一般用来做什么?

Intent is a message used to activate app components, pass data between app components
Intent filter is used to filter implicit intent, if a match is found in action, data and category, the intent is delivered to the component that owns the filter

什么是Service,Service有哪些状态?一般用来承担什么功能?

A service is an app component that doesn`t have UI and can perform long-running operations in the background

Started service: upload file
书上图片
Bound service: music player
书上图片

Broadcast有哪几种?区别?

Normal broadcasts: broadcasts are sent to all interested receivers at the same time and receivers run in an undefined order
Ordered broadcasts: broadcasts are sent to all interested receivers in a proper order. When a receiver receives a broadcast, it can either propagate the broadcast to the next or it can abort the broadcast

LogCat 是做什么用的?

The logcat enables to monitor app`s log output on the simulator. Developer can examine these logs to debug app.

IO:

安卓原生支持几种IO机制?各自有什么特点?哪些是可以public访问的?

Sqlite database: 见上
Internal storage: data be stored is small and can be stored in files instead of a database
External storage: it provide a large capacity that allow user to store
Shared preference: it allows to retrieve persistent key-value pairs of primitive data types
Network connection: it can update frequently from the web and send it to the application

External storage
Shared preference
Network connection

卸载安卓App,该App在internal storage 里的内容会被自动删除吗?

yes

安卓原生的content provider有哪些?

Browser
Contacts
Call log
Media store
settings

判断SD卡是否可用,用什么方法?

if ( Environment.MEDIA_MOUNTED.equals(Enviroment.getExternalStorageState()) )

Shared Preferences 是什么?有什么用?

1)Shared preferences are a lightweight mechanism used to store key-value pairs of primitive
data types
2)Shared Preference are an ideal preferences.They are most frequently used to persist data
across user sessions and to share settings between application components

要从远端URL播放多媒体文件用什么stream?

http stream

创建一个安卓数据库都有哪些途径?

1)Creating a database programmatically
2)Creating a database through shell commands

MediaPlayer 是什么?包含哪些内容?

Mediaplayer is the android multimedia framework. It can fetch, decode, play audio and video stored in local resources, internal URIs, external URLs

UI:

View类 与普通控件的 区别是什么?

The view class is the base class for all normal controls

Activity 运行以后,哪个方法 负责 将外观与Activity 关联起来?

setContentView(R.layout.activity_main);

安卓内建的theme有哪些?<style> 是做什么用的?是否能够通过继承来重用?

1)Theme.Black
2)Theme.Light
3)Theme.Translucent
4)Theme.Dialog
5)Theme.Holo

<style> declares a style
It can be reused through inherit other style

Options Menu是什么?Context Menu是什么?两者区别?Context Menu按下时,事件处理器是什么?

1)Options Menu is the primary collection of menu items for an activity, which appears when the user presses the MENU button on the emulator/device.
2)Context Menu is a floating list of menu items that appears when user touches and holds a view that is registered to provide a context menu.

OnCreatedContextMenu()
OnContextItemSelected()

安卓画图相关的主要有哪3个类?各自作用?

1)Canvas: A Canvas represents a surface where you can draw shapes and images;
2)Paint:The Paint class in Android provides information about the style and color for drawing symbols,text, and graphics;
3)Bitmap :A bitmap image uses pixels to create graphics.

什么是 compound view?

Compound views refer to combining multiple views into a logical group of items that can be treated as a single view.

其他:

安卓支持哪几种Location Provider?如何获得位置提供者,具体方法类有哪些?哪种精确度高?

GPS、Cell tower triangulation 、Public wifi hotspots
Android uses the LocationManager class and the getProvider() method to find the name of all the location providers that are available on the mobile device.

GPS

安卓收到一个短信,会触发什么样的broadcast?想要读取短信,需要申请什么权限(限教材)?SmsManager 是什么?包含哪些内容?

When an SMS is received by an Android system,it triggers a broadcast with action as RECEIVED_SMS,which notifies all the receivers that an SMS has been received.

<uses-permission android:name=”android.permission.RECEIVE_SMS” />

SmsManger enables you to take advantage of the android message services. Messages are sent in android by using the SmsManager class.

情景编程:(只要求写出关键代码或者思路、步骤(要点要全,否则扣分)即可)

1、拨号

Intent intent = new Intent(Intent.ACTION_DIAL,Uri.parse(“tel:110”));
startActivity(intent);

2、如何获取当前地理位置(经纬度).

a.申请权限
<uses-permission android:name=" android.permission.ACCESS_FINE_LOCATION”/>
b.获取LocationManger
LocationManger Im= (LocationManager)getSystemService(Context.LOCATION_SERVICE);
c.获取providers
List<String> providers = lm.getProviders(true);
d.选择一个provider
e.获取location
Location location = lm.getCurrentLocation(provider);
f.获取经纬度
location.getLatitude() location.getLongtitude()

3、如何发起一个有声音、震动、闪灯的 status bar notification ?

1:获取NotificationManager实例
String serviceName = Context.NOTIFICATION_SERVICE;
NotificationManager nm = (NotificationManager)getSystemService(serviceName);
2:创建Notification对象:
Notification notification = new Notification(icon, text, System.currentTimeMillis());
3:设置拉出notification window后显示的内容
setLatestEventInfo(Context con, CharSequence title, CharSequence text, PendingIntent i);
4:设置默认的声音震动闪灯
notification.defaults |= Notification.DEFAULT_SOUND;
notification.defaults |= Notification.DEFAULT_VIBRATE;
notification.defaults |= Notification.DEFAULT_LIGHTS;
5: 启动
nm.notify(Notification_ID_BASE,notification);

4、如何读取一个SQLite数据库中某个表的某一行?
SQLiteDatabase db= new SQLiteOpenHelper(context, databaseName, null, version).getReadableDatabase();
String selectQuery="SELECT "+
        User.KEY_name +
        " FROM " + User.TABLE +
        " WHERE " + User.KEY_email + "=?";
Cursor cursor=db.rawQuery(selectQuery, new String[]{email});
String name = null;
if(cursor.moveToFirst()){
    do{
        name = cursor.getString(cursor.getColumnIndex(User.KEY_name));
    }while(cursor.moveToNext());
}
cursor.close();
db.close();
5、如何播放一个 SD卡 上的 音乐文件,播放30秒后 暂停?

1:获取权限
<uses-permission android:name=" android.permission.WRITE_EXTERNAL_STORAGE”>
<uses-permission android:name=" android.permission.READ_EXTERNAL_STORAGE”>
第一种方式从SD卡读入app内再播放
2:存入文件

FileInputStream fis = new FileInputStream(Environment.getExternalStorageDirectory()+"/music.mp3"); 
FileOutputStream fos = new FileOutputStream("res/raw/xxx.mp3");               
byte datas[] = new byte[1024*8]; 
int len = 0;//创建长度   
while((len = fis.read(datas))!=-1) 
{
	fos.write(datas,0,len);
} 
fis.close();
fis.close();

3:播放

MediaPlayer mediaplayer = MediaPlayer.create(context, R.raw.xxx.mp3);
mediaplayer.start();
Thread.sleep(1000*30);
mediaplayer.pause();

第二种方式直接从SD卡读并播放

String uri = Environment.getExternalStorageDirectory() + "//Music/music.mp3";
MediaPlayer mediaplayer = new MediaPlayer();
mediaplayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
try {
	meidaplayer.setDataSource(uri);
	mediaplayer.prepare();
	mediaplayer.start();
	Thread.sleep(1000*30);
	mediaplayer.pause();
}catch(IOException e) {
	e.printStackTrace();
}
6、发送短信

1)获取SmsManager: SmsManager smsM= SmsManager.getDefault();
2)申请权限: <uses-permission android:name=“android.permission.SEND_SMS”/>
3)发送: smsM.sendTextMessage(String dstAddr, //对方手机号, “139139139139”
String smsc, // (Short Message Service Center)地址,null取默认
String txt,
PendingIntent sent, //发出后广播的消息
PendingIntent deliver); //对方收到后广播的消息

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值