admin管理员组文章数量:1532769
Android面试题
Android是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导及开发。这里会不断收集和更新Android基础相关的面试题,目前已收集100题。
1.Android系统的架构
Android系统架构之应用程序
Android会同一系列核心应用程序包一起发布,该应用程序包包括email客户端,SMS短消息程序,日历,地图,浏览器,联系人管理程序等。所有的应用程序都是使用JAVA语言编写的。
Android系统架构之应用程序框架
开发人员可以完全访问核心应用程序所使用的API框架(android.jar)。该应用程序的架构设计简化了组件的重用;任何一个应用程序都可以发布它的功能块并且任何其它的应用程序都可以使用其所发布的功能块。
Android系统架构之系统运行库
Android 包含一些C/C++库,这些库能被Android系统中不同的组件使用。它们通过 Android 应用程序框架为开发者提供服务。
Android系统架构之Linux 内核
Android 的核心系统服务依赖于 Linux 2.6 内核,如安全性,内存管理,进程管理, 网络协议栈和驱动模型。 Linux 内核也同时作为硬件和软件栈之间的抽象层。
2.activity的生命周期
Activity生命周期方法主要有onCreate()、onStart()、onResume()、onPause()、onStop()、onDestroy()和onRestart()等7个方法。
启动一个A Activity,分别执行onCreate()、onStart()、onResume()方法。
从A Activity打开B Activity分别执行A onPause()、B onCreate()、B onStart()、B onResume()、A onStop()方法。
关闭B Activity,分别执行B onPause()、A onRestart()、A onStart()、A onResume()、B onStop()、B onDestroy()方法。
横竖屏切换A Activity,清单文件中不设置android:configChanges属性时,先销毁onPause()、onStop()、onDestroy()再重新创建onCreate()、onStart()、onResume()方法,设置orientation|screenSize(一定要同时出现)属性值时,不走生命周期方法,只会执行onConfigurationChanged()方法。
Activity之间的切换可以看出onPause()、onStop()这两个方法比较特殊,切换的时候onPause()方法不要加入太多耗时操作否则会影响体验。
3.Fragment的生命周期
Fragment的生命周期
Fragment与Activity生命周期对比
Fragment的生命周期方法主要有onAttach()、onCreate()、onCreateView()、onActivityCreated()、onstart()、onResume()、onPause()、onStop()、onDestroyView()、onDestroy()、onDetach()等11个方法。
切换到该Fragment,分别执行onAttach()、onCreate()、onCreateView()、onActivityCreated()、onstart()、onResume()方法。
锁屏,分别执行onPause()、onStop()方法。
亮屏,分别执行onstart()、onResume()方法。
覆盖,切换到其他Fragment,分别执行onPause()、onStop()、onDestroyView()方法。
从其他Fragment回到之前Fragment,分别执行onCreateView()、onActivityCreated()、onstart()、onResume()方法。
4.Service生命周期
在Service的生命周期里,常用的有:
4个手动调用的方法
-
startService() 启动服务
-
stopService() 关闭服务
-
bindService() 绑定服务
-
unbindService() 解绑服务复制代码
5个内部自动调用的方法
-
onCreat() 创建服务
-
onStartCommand() 开始服务
-
onDestroy() 销毁服务
-
onBind() 绑定服务
-
onUnbind() 解绑服务复制代码
手动调用startService()启动服务,自动调用内部方法:onCreate()、onStartCommand(),如果一个Service被startService()多次启动,那么onCreate()也只会调用一次。
手动调用stopService()关闭服务,自动调用内部方法:onDestory(),如果一个Service被启动且被绑定,如果在没有解绑的前提下使用stopService()关闭服务是无法停止服务的。
手动调用bindService()后,自动调用内部方法:onCreate()、onBind()。
手动调用unbindService()后,自动调用内部方法:onUnbind()、onDestory()。
startService()和stopService()只能开启和关闭Service,无法操作Service,调用者退出后Service仍然存在;bindService()和unbindService()可以操作Service,调用者退出后,Service随着调用者销毁。
5.Android中动画
Android中动画分别帧动画、补间动画和属性动画(Android 3.0以后的)
帧动画
帧动画是最容易实现的一种动画,这种动画更多的依赖于完善的UI资源,他的原理就是将一张张单独的图片连贯的进行播放,从而在视觉上产生一种动画的效果;有点类似于某些软件制作gif动画的方式。在有些代码中,我们还会看到android:oneshot=“false” ,这个oneshot 的含义就是动画执行一次(true)还是循环执行多次。
<?xml version="1.0"encoding="utf-8"?>android:drawable="@drawable/a_0"
android:duration=“100”/>
android:drawable="@drawable/a_1"
android:duration=“100”/>
android:drawable="@drawable/a_2"
android:duration=“100”/>
复制代码
补间动画
补间动画又可以分为四种形式,分别是 alpha(淡入淡出),translate(位移),scale(缩放大小),rotate(旋转)。
补间动画的实现,一般会采用xml 文件的形式;代码会更容易书写和阅读,同时也更容易复用。Interpolator 主要作用是可以控制动画的变化速率 ,就是动画进行的快慢节奏。pivot 决定了当前动画执行的参考位置
<?xml version="1.0"encoding="utf-8"?>android:interpolator="@[package:]anim/interpolator_resource"
版权声明:本文标题:Android面试题合集【上】 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/dongtai/1725577106a1030600.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论