知识大全 android面试题 包括UI控件及数据存储内容

Posted 布局

篇首语:实践是知识的母亲,知识是生活的明灯。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 android面试题 包括UI控件及数据存储内容相关的知识,希望对你有一定的参考价值。

android面试题 包括UI控件及数据存储内容  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

Android的四大组件是哪些 它们的作用? 答 Activity Activity是Android程序与用户交互的窗口 是Android构造块中最基本的一种 它需要为保持各界面的状态 做很多持久化的事情 妥善管理生命周期以及一些跳转逻辑 service 后台服务于Activity 封装有一个完整的功能逻辑实现 接受上层指令 完成相关的食物 定义好需要接受的Intent提供同步和异步的接口 Content Provider 是Android提供的第三方应用数据的访问方案 可以派生Content Provider类 对外提供数据 可以像数据库一样进行选择排序 屏蔽内部数据的存储细节 向外提供统一的借口模型 大大简化上层应用 对数据的整合提供了更方便的途径 BroadCast Receiver 接受一种或者多种Intent作触发事件 接受相关消息 做一些简单处理 转换成一条Notification 统一了Android的事件广播模型 请介绍下Android中常用的五种布局 常用五种布局方式 分别是 FrameLayout(框架布局) LinearLayout (线性布局) AbsoluteLayout(绝对布局) RelativeLayout(相对布局) TableLayout(表格布局) 一 FrameLayout 所有东西依次都放在左上角 会重叠 这个布局比较简单 也只能放一点比较简单的东西 二 LinearLayout 线性布局 每一个LinearLayout里面又可分为垂直布局(android:orientation=&# ;vertical&# ;)和水平布局(android:orientation=&# ;horizontal&# ; ) 当垂直布局时 每一行就只有一个元素 多个元素依次垂直往下 水平布局时 只有一行 每一个元素依次向右排列 三 AbsoluteLayout 绝对布局用X Y坐标来指定元素的位置 这种布局方式也比较简单 但是在屏幕旋转时 往往会出问题 而且多个元素的时候 计算比较麻烦 四 RelativeLayout 相对布局可以理解为某一个元素为参照物 来定位的布局方式 主要属性有 相对于某一个元素android:layout_below android:layout_toLeftOf相对于父元素的地方android:layout_alignParentLeft android:layout_alignParentRigh 五 TableLayout 表格布局 每一个TableLayout里面有表格行TableRow TableRow里面可以具体定义每一个元素 每一个布局都有自己适合的方式 这五个布局元素可以相互嵌套应用 做出美观的界面 android中的动画有哪几类 它们的特点和区别是什么 答 两种 一种是Tween动画 还有一种是Frame动画 Tween动画 这种实现方式可以使视图组件移动 放大 缩小以及产生透明度的变化;另一种Frame动画 传统的动画方法 通过顺序的播放排列好的图片来实现 类似电影 android 中有哪几种解析xml的类?官方推荐哪种?以及它们的原理和区别 答 XML解析主要有三种方式 SAX DOM PULL 常规在PC上开发我们使用Dom相对轻松些 但一些性能敏感的数据库或手机上还是主要采用SAX方式 SAX读取是单向的 优点:不占内存空间 解析属性方便 但缺点就是对于套嵌多个分支来说处理不是很方便 而DOM方式会把整个XML文件加载到内存中去 这里Android开发网提醒大家该方法在查找方面可以和XPath很好的结合如果数据量不是很大推荐使用 而PULL常常用在J ME对于节点处理比较好 类似SAX方式 同样很节省内存 在J ME中我们经常使用的KXML库来解析 ListView的优化方案 答 如果自定义适配器 那么在getView方法中要考虑方法传进来的参数contentView是否为null 如果为null就创建contentView并返回 如果不为null则直接使用 在这个方法中尽可能少创建view 给contentView设置tag(setTag()) 传入一个viewHolder对象 用于缓存要显示的数据 可以达到图像数据异步加载的效果 如果listview需要显示的item很多 就要考虑分页加载 比如一共要显示 条或者更多的时候 我们可以考虑先加载 条 等用户拉到列表底部的时候再去加载接下来的 条 请介绍下Android的数据存储方式 答 使用SharedPreferences存储数据 文件存储数据 SQLite数据库存储数据 使用ContentProvider存储数据 网络存储数据 Preference File DataBase这三种方式分别对应的目录是/data/data/Package Name/Shared_Pref /data/data/Package Name/files /data/data/Package Name/database 一 使用SharedPreferences存储数据 首先说明SharedPreferences存储方式 它是 Android提供的用来存储一些简单配置信息的一种机制 例如 登录用户的用户名与密码 其采用了Map数据结构来存储数据 以键值的方式存储 可以简单的读取与写入 具体实例如下 void ReadSharedPreferences() String strName strPassword; SharedPreferences user = getSharedPreferences( user_info ); strName = user getString( NAME ); strPassword = user getString( PASSWORD ); void WriteSharedPreferences(String strName String strPassword) SharedPreferences user = getSharedPreferences( user_info ); uer edit(); user putString( NAME strName); user putString( PASSWORD strPassword); user mit(); 数据读取与写入的方法都非常简单 只是在写入的时候有些区别 先调用edit()使其处于编辑状态 然后才能修改数据 最后使用mit()提交修改的数据 实际上SharedPreferences是采用了XML格式将数据存储到设备中 在DDMS中的File Explorer中的/data/data/<package name>/shares_prefs下 使用SharedPreferences是有些限制的 只能在同一个包内使用 不能在不同的包之间使用 二 文件存储数据 文件存储方式是一种较常用的方法 在Android中读取/写入文件的方法 与 Java中实现I/O的程序是完全一样的 提供了openFileInput()和openFileOutput()方法来读取设备上的文件 具体实例如下: String fn = moandroid log ; FileInputStream fis = openFileInput(fn); FileOutputStream fos = openFileOutput(fn Context MODE_PRIVATE); 三 网络存储数据 网络存储方式 需要与Android 网络数据包打交道 关于Android 网络数据包的详细说明 请阅读Android SDK引用了Java SDK的哪些package? 四 ContentProvider ContentProvider简介 当应用继承ContentProvider类 并重写该类用于提供数据和存储数据的方法 就可以向其他应用共享其数据 虽然使用其他方法也可以对外共享数据 但数据访问方式会因数据存储的方式而不同 如 采用文件方式对外共享数据 需要进行文件操作读写数据 采用sharedpreferences共享数据 需要使用sharedpreferences API读写数据 而使用ContentProvider共享数据的好处是统一了数据访问方式 Uri类简介 Uri代表了要操作的数据 Uri主要包含了两部分信息 需要操作的ContentProvider 对ContentProvider中的什么数据进行操作 一个Uri由以下几部分组成 scheme ContentProvider(内容提供者)的scheme已经由Android所规定为 content://… 主机名(或Authority) 用于唯一标识这个ContentProvider 外部调用者可以根据这个标识来找到它 路径(path) 可以用来表示我们要操作的数据 路径的构建应根据业务而定 如下 要操作contact表中id为 的记录 可以构建这样的路径:/contact/ 要操作contact表中id为 的记录的name字段 contact/ /name 要操作contact表中的所有记录 可以构建这样的路径:/contact? 要操作的数据不一定来自数据库 也可以是文件等他存储方式 如下: 要操作xml文件中contact节点下的name节点 可以构建这样的路径 /contact/name 如果要把一个字符串转换成Uri 可以使用Uri类中的parse()方法 如下 Uri uri = Uri parse(&# ;content:// changchenntactprovider/contact&# ;) UriMatcher ContentUrist和ContentResolver简介 因为Uri代表了要操作的数据 所以我们很经常需要解析Uri 并从 Uri中获取数据 Android系统提供了两个用于操作Uri的工具类 分别为UriMatcher 和ContentUris 掌握它们的使用 会便于我们的开发工作 UriMatcher 用于匹配Uri 它的用法如下

cha138/Article/program/yd/201404/30440

相关参考

知识大全 数据结构 面试题 3

一个算法通常由哪两种基本要素组成?答案一是对数据对象的运算和操作二是算法的控制结构算法的复杂度主要包括什么?答案时间复杂度和空间复杂度实现算法所需的存储单元多少和算法的工作量大小分别称为算法的空间复杂

知识大全 andriod面试题

如何进行ListView性能优化视图缓存等Android中对View的更新有几种方式?多线程和双缓冲的使用情况AndroidIPC及原理Android多线程处理的机制Android为什么要设计大组件之

知识大全 用Delphi编写数据报存储控件

用Delphi编写数据报存储控件  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!一概述    在用D

知识大全 Java及数据库面试题 包含SSH,数据库和Java基础

Java及数据库面试题包含SSH,数据库和Java基础  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧

知识大全 Android开发有没有人做过日历控件,可以签到的

Android开发有没有人做过日历控件,可以签到的  以下文字资料是由(本站网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!An

知识大全 博惠思华Java开发工程师面试题及答案

博惠思华Java开发工程师面试题及答案  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!连接数据库使用

知识大全 改善Form提交数据的UI 交互设计

改善Form提交数据的UI交互设计  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  数据一次校验&

知识大全 Oracle数据类型及存储方式

Oracle数据类型及存储方式  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  概述  通过实例全

知识大全 数据结构与算法面试题

cha138/Article/program/sjjg/201404/30583

知识大全 工作时总结的iphone面试题,笔试题

objectivec中的数字对象都有哪些简述它们与基本数据类型的区别是什么用NSLog函数输出一个浮点类型结果四舍五入并保留一位小数截取字符串|中|字符前面及后面的数据分别输出它们objectivec