android面试大全

什么是Activity?
请描述一下Activity生命周期。
       onCreate() //在activity生命周期开始时被调用。
           onRestoreInstanceState() //onCreate完成后被调用,用来恢复UI状态。
           onRestart() //当activity从停止状态重新启动时调用。
           onStart() //当activity对用户即将可见的时候调用。
            onResume() //当activity与用户交互的时候,重绘屏幕。
            onSaveInstanceState() //activity即将移出栈顶保留UI状态时调用此方法。
           onPause() //当系统要启动一个其他的activity时调用(其他的activity显示之前),这个方法被用来提交那些持久数据的改变、停止动画、和其他占用 CPU资源的东西。由于下一个activity在这个方法返回之前不会resumed,所以实现这个方法时代码执行要尽可能快。
           onStop() //用户不再可见时调用
          onDestroy //在activity被销毁前所调用的最后一个方法,当进程终止时会出现这种情况

两个Activity之间跳转时必然会执行的是哪几个方法。
横竖屏切换时候Activity的生命周期。
如何将一个Activity设置成窗口的样式。
你后台的Activity被系统 回收怎么办?
如何退出Activity?如何安全退出已调用多个Activity的Application?
如果后台的Activity由于某原因被系统回收了,如何在被系统回收之前保存当前状态?
两个Activity之间怎么传递数据?
怎么让在启动一个Activity是就启动一个service?
同一个程序,但不同的Activity是否可以放在不同的Task任务栈中?
Activity怎么和service绑定,怎么在activity中启动自己对应的service?
什么是Service以及描述下它的生命周期。
Service有哪些启动方法,有什么区别,怎样停用Service?
不用service,B页面为音乐播放,从A跳转到B,再返回,如何使音乐继续播放?
什么是IntentService?有何优点?
什么时候使用Service?
请描述一下Intent 和 Intent Filter。
Intent传递数据时,可以传递哪些类型数据?
说说Activity,Intent,Service是什么关系 。
请描述一下Broadcast Receiver。
在manifest和代码中如何注册和使 用 broadcast receiver 。
请介绍下ContentProvider是如何实现数据共享的。
请介绍下Android的数据存储方式。
      SharedPreferences:用来存储”key-value paires“格式的数据,它是一个轻量级的键值存储机制,只可以存储基本数据类型。
文件存储:通过FileInputStream和FileOutputStream对文件进行操作。在Android中,文件是一个应用程序私有的,一个应用无法读写其他应用程序的文件。
3.SQLite数据库存储:Android提供的一个标准数据库,支持SQL语句。
网络:通过网络来存储和获得数据。
ContentProvider:是所有应用程序之间数据存储和检索的一个桥梁,它的作用就是使得各个应用程序之间实现数据共享。它是一个特殊的存储数据的类型,它提供了一套标准的接口用来获取数据、操作数据。系统也提供了音频、视频、图像和个人信息等几个常用的Content Providers。如果你想公开自己的私有数据,可以创建自己的Content Provider类,或者当你对这些数据拥有控制、写入的权限时讲这些数据添加到Content Provider中实现共享。外部访问通过ContentResolver去访问并操作这些被暴露的数据。组织数据主要包括:存储数据,读取数据,以数据库的方式暴露数据。数据的存储需要根据设计的需求,选择合适的存储结构,首选数据库,当然也可以选择本地其他文件,甚至可以是网络上的数据。数据的读取,以数据库的方式暴露数据这就要求,无论数据是如何存储的,数据最后必须以数据的方式访问。

为什么要用ContentProvider?它和sql的实现上有什么差别?
请介绍下Android中常用的五种布局。
    最常用的布局方式为LinearLayout、RelativeLayout、FrameLayout、TableLayout AbsoluteLayout。其中LinearLayout和RelativeLayout是最常用的方式,他们可以通过在xml配置文件或者代码中进行布局。
FrameLayout 最简单的布局方式,放置的控件都只能罗列到左上角,控件会有重叠,不能进行复杂的布局。
LinearLayou可以通过orientation属性设置线性排列的方向是垂直(vertical)还是纵向(horizontal).每行或每列只有一个元素,可以进行复杂的布局。
AbsoluteLayout 可以让子元素指定准确的x/y坐标值,并显示在屏幕上。AbsoluteLayout 没有页边框,允许元素之间互相重叠(尽管不推荐)。他是绝对坐标,所以在实际中不提倡使用。
RelativeLayout 允许子元素指定他们相对于其它元素或父元素的位置(通过ID 指定)。因此,你可以以右对齐,或上下,或置于屏幕中央的形式来排列两个元素。元素按顺序排列,因此如果第一个元素在屏幕的中央,那么相对于这个元素的其它元素将以屏幕中央的相对位置来排列。这个是相对于 AbsoluteLayout 的,采用的相对坐标,所以在实际中比较常用。
TableLayout 将子元素的位置分配到行或列中。一个TableLayout 由许多的TableRow 组成,每个TableRow 都会定义一个 row 。TableLayout 容器不会显示row 、column或cell 的边框线。每个 row 拥有0个或多个的cell ;和html中的table差不多。在实际中也经常使用。
    有的时候我们也会用到GridView,就像我们手机屏幕上摆放的各个图标应该就是用GridView排版的。 Padding是文字相对于边框,而Margin是边框相对于父窗体。

谈谈UI中, Padding和Margin有什么区别?
widget相对位置的完成在antivity的哪个生命周期阶段实现。
请解释下在单线程模型中Message、Handler、Message Queue、Looper之间的关系。
AIDL的全称是什么?如何工作?能处理哪些类型的数据?
请解释下Android程序运行时权限与文件系统权限的区别。
系统上安装了多种浏览器,能否指定某浏览器访问指定页面?
对多线程的运用和理解,及多线程之间handle的传值。
对android虚拟机的理解,包括内存管理机制垃圾回收机制。
Framework工作方式及原理,Activity是如何生成一个view的,机制是什么。
android本身的一些限制,比如apk包大小限制,读取大文件时的时间限。
如何加载的音乐信息,如何改善其效率。
ListView如何提高其效率?
启动应用后,改变系统语言,应用的语言会改变么?
启动一个程序,可以主界面点击图标进入,也可以从一个程序中跳转过去,二者有什么区别?
Android程序与Java程序的区别?
Android中Task任务栈的分配。
在Android中,怎么节省内存的使用,怎么主动回收内存?
不同工程中的方法是否可以相互调用?
在Android中是如何实现判断区分通话记录中的电话状态,去电,来电、未接来电?
dvm的进程和Linux的进程, 应用程序的进程是否为同一个概念
sim卡的EF 文件有何作用
如何判断是否有SD卡?
嵌入式操作系统内存管理有哪几种, 各有何特性。
什么是嵌入式实时操作系统, Android 操作系统属于实时操作系统吗?
一条最长的短信息约占多少byte?
Linux中跨进程通信的几种方式 。
谈谈对Android NDK的理解。
谈谈Android的优点和不足之处。
Android系统中GC什么情况下会出现内存泄露呢?
Android UI中的View如何刷新。
简单描述下Android 数字签名。
什么是ANR 如何避免它?
android中的动画有哪几类,它们的特点和区别是什么?
handler机制的原理。
android中线程与线程,进程与进程之间如何通信。
说说mvc模式的原理,它在android中的运用。
android中有哪几种解析xml的类,官方推荐哪种?以及它们的原理和区别。
DDMS与TraceView的区别?
res目录有默认几项resource。
android的哪个版本是一次重大的升级?

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值