2022年android笔试题目 .pdf
1. 请谈一下Android系统的架构。答: Android系统采用了分层架构,从高层到低层分别是应用程序层、应用程序框架层、系统运行库层和linux核心层。2. 谈谈 android大众常用的五种布局。答:在 Android中,共有五种布局方式, 分别是:FrameLayout(框架布局 ) , LinearLayout ( 线性布局 ) ,AbsoluteLayout(绝对布局 ),RelativeLayout(相对布局 ),TableLayout(表格布局 )。(1)FrameLayout 框架布局 ,放入其中的所有元素都被放置在最左上的区域,而且无法为这些元素指定一个确切的位置,下一个子元素会重叠覆盖上一个子元素,适合浏览单张图片。(2)LinearLayout 线性布局 ,是应用程序中最常用的布局方式,主要提供控件水平或者垂直排列的模型,每个子组件都是以垂直或水平的方式来定位.( 默认是垂直 ) (3)AbsoluteLayout 绝对定位布局,采用坐标轴的方式定位组件,左上角是(0,0)点,往右 x 轴递增,往下 Y 轴递增 ,组件定位属性为android:layout_x 和 android:layout_y来确定坐标。(4)RelativeLayout 相对布局 ,根据另外一个组件或是顶层父组件来确定下一个组件的位置。和 CSS 里面的类似。(5)TableLayout 表格布局 ,类似 Html里的 Table. 使用 TableRow来布局,其中TableRow代表一行, TableRow的每一个视图组件代表一个单元格。3. 谈谈 android数据存储方式。答: Android提供了 5 种方式存储数据:(1)使用 SharedPreferences存储数据; 它是 Android提供的用来存储一些简单配置信息的一种机制,采用了XML 格式将数据存储到设备中。只能在同一个包内使用,不能在不同的包之间使用。(2)文件存储数据;文件存储方式是一种较常用的方法,在Android中读取 / 写入文件的方法,与Java 中实现 I/O 的程序是完全一样的,提供了openFileInput()和openFileOutput()方法来读取设备上的文件。(3)SQLite数据库存储数据; SQLite是 Android所带的一个标准的数据库,它支持 SQL语句,它是一个轻量级的嵌入式数据库。(4)使用 ContentProvider存储数据;主要用于应用程序之间进行数据交换,从而能够让其他的应用保存或读取此Content Provider的各种数据类型。(5)网络存储数据;通过网络上提供给我们的存储空间来上传( 存储 )和下载 (获取 )我们存储在网络空间中的数据信息。4.Android中 Activity, Intent, Content Provider, Service各有什么区别。答:Activity: 活动, 是最基本的android应用程序组件。 一个活动就是一个单独的屏幕,每一个活动都被实现为一个独立的类,并且从活动基类继承而来。Intent: 意图,描述应用想干什么。最重要的部分是动作和动作对应的数据。Content Provider: 内容提供器, android应用程序能够将它们的数据保存到文件、SQLite数据库中, 甚至是任何有效的设备中。当你想将你的应用数据和其他应用共享时,内容提供器就可以发挥作用了。Service:服务,具有一段较长生命周期且没有用户界面的程序。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 3 页 - - - - - - - - - 5.View, surfaceView, GLSurfaceView有什么区别。答: view是最基础的,必须在UI 主线程内更新画面,速度较慢。SurfaceView 是 view的子类,类似使用双缓机制,在新的线程中更新画面所以刷新界面速度比 view快GLSurfaceView 是 SurfaceView的子类, opengl 专用的6.Adapter有什么作用?常见的Adapter有哪些?答: Adapter是连接后端数据和前端显示的适配器接口。常见的 Adapter有 ArrayAdapter, BaseAdapter, CursorAdapter, HeaderViewListAdapter, ListAdapter, ResourceCursorAdapter, SimpleAdapter, SimpleCursorAdapter, SpinnerAdapter, WrapperListAdapter等7.Manifest.xml文件中主要包括哪些信息?答: manifest:根节点,描述了package中所有的内容。uses-permission:请求你的package正常运作所需赋予的安全许可。permission: 声明了安全许可来限制哪些程序能你package中的组件和功能。instrumentation:声明了用来测试此package或其他 package指令组件的代码。application:包含 package中 application级别组件声明的根节点。 activity:Activity是用来与用户交互的主要工具。 receiver:IntentReceiver能使的 application获得数据的改变或者发生的操作,即使它当前不在运行。 service:Service是能在后台运行任意时间的组件。 provider: ContentProvider是用来管理持久化数据并发布给其他应用程序使用的组件1. Intent的几种有关 Activity启动的方式有哪些,你了解每个含义吗这里 Android123 提示大家, Intent的一些标记有FLAG_ACTIVITY_BROUGHT_TO_FRONT、FLAG_ACTIVITY_CLEAR_TOP、FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET、FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS、FLAG_ACTIVITY_MULTIPLE_TASK和FLAG_ACTIVITY_NEW_TASK等。每种含义大家看SDK 文档和具体跑下这样你的记忆会更深刻些。2. Activity和 Task的启动模式有哪些 ? 每种含义是什么有关在 AndroidManifest.xml中的 android:launchMode定义, 主要有 standard 、singleTop 、singleTask 和 singleInstance,同时对于 android:taskAffinity这些问题大家也要了解, Android 开发网在以前的文章中讲过,不过很多开发者仍然不是很清楚,这些基础问题我们以后仍然会再次总结。3. 通过 Intent传递一些二进制数据的方法有哪些? 1). 使用 Serializable接口实现序列化,这是Java 常用的方法。2). 实现 Parcelable接口, 这里 Android 的部分类比如 Bitmap 类就已经实现了,同时 Parcelable在 Android AIDL 中交换数据也很常见的。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 3 页 - - - - - - - - - 4. 能说下 Android 应用的入口点吗 ? 真正的 Android 入口点是 application的 main,你可以看下androidmanifest.xml的包含关系就清楚了。可以没有Activity但是必须有Application 5. Android都有哪些 XML 解析器,都熟练掌握吗 ? 这里 XmlPull 、SAX和 DOM 相信做过 Web开发的都已经滚瓜烂熟了。6. SQLite支持事务吗 ? 添加删除如何提高性能 ? SQLite 作为轻量级的数据库,比MySQL 还小,但支持 SQL语句查询,提高性能可以考虑通过原始经过优化的SQL查询语句方式处理名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 3 页 - - - - - - - - -