21. 请描述一下BroadcastReceiver。
有很多广播接收者 ,系统已经实现了.
广播分两种
有序广播
无序广播
指定接收者的广播 . 是不可以被拦截掉的
<intent-filterandroid:priority="1000">
<actionandroid:name="android.provider.Telephony.SMS_RECEIVED"/>
</intent-filter>
onReceive() 方法.
abortBroadcast();
有序广播有一个特例
sendOrderedBroadcast(intent, receiverPermission,resultReceiver, scheduler, initialCode, initialData,initialExtras);
resultReceiver广播接受者如果我们显示的指定了广播接收者
无论如何都会接受广播时间abortBroadcast(); 的方法不会终止广播时间
SetresultData();
Sticky
sendStickyBroadcast(intent) // 阴魂不散的广播
Wifi设置
用于接收系统的广播通知, 系统会有很多sd卡挂载,手机重启,广播通知,低电量,来短信等,一个apk的安装成功….
手机卫士中自定义一个broadcast receiver
<intent-filter android:> <action> sms_received </action> </intent-filter>
来获取短信到来的广播, 根据黑名单来判断是否拦截该短信.
画画板生成图片后,发送一个sd挂载的通知,通知系统的gallery去获取到新的图片.
Intent intent = new Intent(Intent.ACTION_MEDIA_MOUNTED,Uri.parse("file://"+Environment.getExternalStorageDirectory()));
sendBroadcast(intent);
22. 在manifest和代码中如何注册和使 用 broadcastreceiver 。
设置广播接收者的优先级,设置广播接受者的action名字 等…
详细见工程代码.
<intent-filter android:priority="1000">
<actionandroid:name="android.intent.action.NEW_OUTGOING_CALL"/>
</intent-filter>
</receiver>
<receiverandroid:name=".SmsReceiver">
<intent-filterandroid:priority="1000">
<actionandroid:name="android.provider.Telephony.SMS_RECEIVED"/>
</intent-filter>
</receiver>
<receiverandroid:name=".BootCompleteReceiver">
<intent-filter>
<actionandroid:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
代码中注册,如果代码没有执行,就接受不到广播事件
registerReceiver(receiver, filter);
23. 请介绍下ContentProvider是如何实现数据共享的。
把自己的数据通过uri的形式共享出去
android 系统下 不同程序 数据默认是不能共享访问
需要去实现一个类去继承ContentProvider
publicclass PersonContentProvider extends ContentProvider{
publicboolean onCreate(){
//..
}
query(Uri, String[], String, String[], String)
insert(Uri, ContentValues)
update(Uri, ContentValues, String, String[])
delete(Uri, String, String[])
}
content:// 代表contentprovider
技巧: 1.看urlmarcher.
2. 根据匹配码 查看增删改查的具体实现
24. 请介绍下Android的数据存储方式。
文件 访问权限. sdcard
/data/data/包名/files内存里面
<data>/<data> context.openFileInput(name)默认是私有的访问权限
数据库 sqlite
SharedPreference <data>/<data>/包名/shared_preps Context.modeprivate
网络 socket tcp 面向连接 打电话 udp 平信 udp,
http httpurlconnection
Androidhttpclient post get
ftp的网络 file transport protocol
25. 为什么要用ContentProvider?它和sql的实现上有什么差别?
屏蔽数据存储的细节,对用户透明,用户只需要关心操作数据的uri就可以了,对应的参数 .
不同app之间共享,操作数据
但是contentprovider还可以去增删改查本地文件. xml文件的读取,更改,
网络数据读取更改
Sql也有增删改查的方法.
26. 请介绍下Android中常用的五种布局。
FrameLayout(帧布局),LinearLayout (线性布局),AbsoluteLayout(绝对布局),RelativeLayout(相对布局),TableLayout(表格布局)
FrameLayout
从屏幕的左上角开始布局,叠加显示, 实际应用 播放器的暂停按钮.
LinearLayout
线性布局,这个东西,从外框上可以理解为一个div,他首先是一个一个从上往下罗列在屏幕上。每一个LinearLayout里面又可分为垂直布局
(android:orientation="vertical")和水平布局(android:orientation="horizontal"
)。当垂直布局时,每一行就只有一个元素,多个元素依次垂直往下;水平布局时,只有一行,每一个元素依次向右排列。
AbsoluteLayout
绝对布局犹如div指定了absolute属性,用X,Y坐标来指定元素的位置android:layout_x="20px"
android:layout_y="12px"
qq斗地主 qq游戏大厅800*480 800*480.apk fwvga 854*480 320*240
指定平板机型的游戏开发中经常用到绝对布局 widget 绝对布局
指定机型的平板游戏开发. 2.3 3.0
android 2.2 2.3 2.3 sip 开发网络电话 session setup protocol 2.3 支持摄像头
Android 3.0 3.1 针对平板电脑
分裂
4.0 平板 平板 电视机机顶盒
1. 界面布局 任务管理器 gridview
2. 手机 任务管理 listview
lephone
lepad
RelativeLayout
相对布局可以理解为某一个元素为参照物,来定位的布局方式。主要属性有:
相对于某一个元素
android:layout_below="@id/aaa" 该元素在 id为aaa的下面
android:layout_toLeftOf="@id/bbb" 改元素的左边是bbb
相对于父元素的地方
android:layout_alignParentLeft="true" 在父元素左对齐
android:layout_alignParentRight="true"在父元素右对齐
TableLayout <table>
表格布局类似Html里面的Table。每一个TableLayout里面有表格行TableRow,TableRow里面可以具体定义每一个元素,设定他的对齐方式android:gravity="" 。
每一个布局都有自己适合的方式,另外,这五个布局元素可以相互嵌套应用,做出美观的界面。
oa 自动化 生成报表 ,图标 表示
css div
webview
27. 谈谈UI中, Padding和Margin有什么区别?
Padding 文字对边框, margin是控件与控件之间的距离
28. widget相对位置的完成在activity的哪个生命周期阶段实现。
这个题没看懂…
widget可以理解成桌面小控件,
也可以理解成 某个button, imageview这样的控件…
onmeasure() // 计算 控件在屏幕上的位子
某个view 要显示在界面 ondraw 被显示到界面上的
29. 请解释下在单线程模型中Message、Handler、Message Queue、Looper之间的关系。
Activity 里面默认会帮创建Looper
子线程里面显示土司
Looper.parepare();
Toast
Looper.loop();
30. AIDL的全称是什么?如何工作?
Android interface definition language (android接口定义语言) ,
用来跨进程的访问方法,
访问远程的服务的方法. 如何工作 day7 queryStudent .
.endcall();
手机卫士 Itelephony 接口挂断电话.