android面试题整理 itcast/传智播客
这个分拣系统通过3个参数来识别 Action: 动作 Intent.ation_view Data: 数据uri uri mime Category : 而外的附加信息 Action 匹配
Action 是一个用户定义的字符串,用于描述一个 Android 应用程序组件,一个 Intent Filter 可以包含多个 Action。在 AndroidManifest.xml 的 Activity 定义时可以在其
如果我们在启动一个 Activity 时使用这样的 Intent 对象: Intent intent =new Intent();
intent.setAction(\
那么所有的 Action 列表中包含了“cn.itcast”的 Activity 都将会匹配成功。
Android 预定义了一系列的 Action 分别表示特定的系统动作。这些 Action 通过常量的方式定义在 android.content. Intent中,以“ACTION_”开头。我们可以在 Android 提供的文档中找到它们的详细说明。 URI 数据匹配
一个 Intent 可以通过 URI 携带外部数据给目标组件。在
mimeType 属性指定携带外部数据的数据类型,scheme 指定协议,host、port、path 指定数据的位置、端口、和路径。如下:
如果在 Intent Filter 中指定了这些属性,那么只有所有的属性都匹配成功时 URI 数据匹配才会成功。 Category 类别匹配 19. Intent传递数据时,可以传递哪些类型数据? 1.一般的基本数据类型 Intent .putextra() intent.getStringextra(); 2. 数据的uri, intent.setData() intent.getData(); 麦当劳和麦当娜的关系是什么关系? 这种问题,就讲下activity,讲一下service,说一下 通过intent去激活组件,传递数据. 说自己项目中有这样一个网络更新的功能,显示界面就用的activity, 后台有个service每隔半小时 http://www.http://www.wodefanwen.com/ 自己定义的uri itcast://cn.itcast/person/10 20. 说说Activity,Intent,Service是什么关系 。 android面试题整理 itcast/传智播客 都去访问下服务器获取更新的数据? 开启服务用的是intent来开启 21. 请描述一下Broadcast Receiver。 有很多广播接收者 ,系统已经实现了. 广播分两种 有序广播 无序广播 指定接收者的广播 . 是不可以被拦截掉的 onReceive() 方法. abortBroadcast(); 有序广播有一个特例 sendOrderedBroadcast(intent, receiverPermission, resultReceiver, scheduler, initialCode, initialData, initialExtras); resultReceiver 广播接受者 如果我们显示的指定了广播接收者 无论如何 都会接受广播 时间 abortBroadcast(); 的方法不会终止广播时间 SetresultData(); Sticky sendStickyBroadcast(intent) // 阴魂不散的广播 Wifi设置 用于接收系统的广播通知, 系统会有很多sd卡挂载,手机重启,广播通知,低电量,来短信等,一个apk的安装成功?. 手机卫士中自定义一个broadcast receiver 画画板生成图片后,发送一个sd挂载的通知,通知系统的gallery去获取到新的图片. Intent intent = new Intent(Intent.ACTION_MEDIA_MOUNTED,Uri.parse(\getExternalStorageDirectory())); sendBroadcast(intent); 22. 在manifest和代码中如何注册和使 用 broadcast receiver 。 设置广播接收者的优先级,设置广播接受者的action名字 等? 详细见工程代码. android面试题整理 itcast/传智播客 代码中注册,如果代码没有执行,就接受不到广播事件 registerReceiver(receiver, filter); 23. 请介绍下ContentProvider是如何实现数据共享的。 把自己的数据通过uri的形式共享出去 android 系统下 不同程序 数据默认是不能共享访问 需要去实现一个类去继承ContentProvider public class PersonContentProvider extends ContentProvider{ public boolean 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 内存里面 / context.openFileInput(name) 默认是私有的访问权限 数据库 sqlite SharedPreference //包名/shared_preps Context.modeprivate 网络 socket tcp 面向连接 打电话 udp 平信 udp, http httpurlconnection Android httpclient post get ftp的网络 file transport protocol 25. 为什么要用ContentProvider?它和sql的实现上有什么差别? 屏蔽数据存储的细节,对用户透明,用户只需要关心操作数据的uri就可以了,对应的参数 . 不同app之间共享,操作数据 但是contentprovider 还可以去增删改查本地文件. xml文件的读取,更改, 网络数据读取更改 android面试题整理 itcast/传智播客 Sql也有增删改查的方法. 26. 请介绍下Android中常用的五种布局。 FrameLayout(帧布局),LinearLayout (线性布局),AbsoluteLayout(绝对布局),RelativeLayout(相对布局),TableLayout(表格布局) FrameLayout 从屏幕的左上角开始布局,叠加显示, 实际应用 播放器的暂停按钮. LinearLayout 线性布局,这个东西,从外框上可以理解为一个div,他首先是一个一个从上往下罗列在屏幕上。每一个LinearLayout里面又可分为垂直布局 (android:orientation=\)和水平布局(android:orientation=\ )。当垂直布局时,每一行就只有一个元素,多个元素依次垂直往下;水平布局时,只有一行,每一个元素依次向右排列。 AbsoluteLayout 绝对布局犹如div指定了absolute属性,用X,Y坐标来指定元素的位置android:layout_x=\android:layout_y=\ 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的下面 android:layout_toLeftOf=\改元素的左边是bbb 相对于父元素的地方 android:layout_alignParentLeft=\在父元素左对齐 android:layout_alignParentRight=\在父元素右对齐 TableLayout 表格布局类似Html里面的Table。每一个TableLayout里面有表格行TableRow,TableRow里面可以具体定义每一个元素,设定他的对齐方式 android:gravity=\。 每一个布局都有自己适合的方式,另外,这五个布局元素可以相互嵌套应用,做出美观的界面。 oa 自动化 生成报表 ,图标 表示 css div webview 27. 谈谈UI中, Padding和Margin有什么区别? android面试题整理 itcast/传智播客 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 接口挂断电话. 31. 请解释下Android程序运行时权限与文件系统权限的区别。 Android程序执行需要读取到安全敏感项必需在androidmanifest.xml中声明相关权限请求, 打电话,访问网络,获取坐标,写sd卡,读写联系人等..安装的时候会提示用户? -rw------ 私有权限 -rw-rw-rw- 全局可读可写 linux系统的文件权限 文件系统的权限是linux权限. 比如说sharedpreference里面的Context.Mode_private Context.Mode.world_read_able Context.Mode_world_writeable 777自己 同组 其他 root 是危险的行为