2023最新Android面试题(一)

Android基础


一、Activity启动模式

standard:默认启动模式,每次启动activity都会创建一个新的activity并入栈,退出销毁则出栈,属于先进后出的标准模式。
singleTop:栈顶复用,如果启动activity存在于栈顶,则直接复用,同时调用onNewIntent()方法,否则创建一个新的activity并入栈。
singleInstance:单实例模式,设置成此模式的activity被创建之后会开启一个单独的任务栈,该activity独享这一个栈并且可以被复用。
singleTask:栈内复用模式,如果启动activity不存在于栈中,则创建一个新的activity并入栈。如果启动的activity存在于栈中,则会把该位于该activity之上的所有activity出栈,使启动的activity暴露在栈顶。

二、Android动画

Tween动画:一种基本的补间动画,可以移动、旋转、缩放或透明度变化等操作,可通过xml或Java代码设置动画持续时间、延迟、重复等参数,同时为了提高用户体验,可以设置动画插值器实现多种不同的动画效果。
帧动画:一种基于多张图片的动画,类似于GIF图,在一定的时间内切换不同的图片来达到不同的动画效果。通常将一组图片打包成一个Drawble对象,并使用ImageView控件显示。
属性动画:可以对任何一个可以改变的属性进行动画操作,包括移动、旋转、大小、透明度等。与Tween动画不同,属性动画的执行过程中属性值是动态计算的,而不是简单的插值计算,从而实现更加灵活多变的动画效果。
除了以上几种动画类型,还有一些特殊的动画,例如Activity过渡动画、场景转换动画等,可以通过API或第三方库实现。需要注意的是,动画效果虽然能够改善用户界面体验,但如果不合理使用,也可能导致页面卡顿、性能下降等问题,因此在使用动画时需要注意性能和用户体验的平衡。

三、Activity和fragment生命周期

Activity生命周期

onCreate():当Activity被创建时调用。在这个方法中通常进行Activity的初始化操作,例如加载布局资源,初始化成员变量等。
onStart():当Activity即将变为可见状态时调用。在这个方法中通常进行需要在可见状态下进行的操作,例如打开相机、注册广播等。
onResume():当Activity进入前台且处于可见状态时调用。在这个方法中通常进行需要用户交互或需要持续运行的操作,例如动画效果、播放音频等。
onPause():当Activity失去焦点但仍在前台可见时调用。在这个方法中通常处理性能消耗较大的操作,例如停止动画、释放资源等。
onStop():当Activity完全不可见时调用。在这个方法中通常处理界面销毁、取消注册广播等清理工作。
onRestart():当Activity重新回到前台时调用。在这个方法中通常进行界面的重新初始化操作。
onDestroy():当Activity被销毁时调用。在这个方法中通常进行最后的资源释放操作。

Fragment生命周期

onAttach():当Fragment与Activity关联时调用。在这个方法中通常进行Fragment与Activity之间的数据传递和初始化操作。
onCreate():当Fragment被创建时调用。在这个方法中通常进行Fragment的初始化操作。
onCreateView():当Fragment需要加载布局时调用。在这个方法中通常返回Fragment所需的根布局View对象。
onActivityCreated():当Fragment所依赖的Activity完全创建时调用。在这个方法中通常进行与Activity相关的初始化工作。
onStart():当Fragment即将变为可见状态时调用。
onResume():当Fragment进入前台且处于可见状态时调用。
onPause():当Fragment失去焦点但仍在前台可见时调用。
onStop():当Fragment完全不可见时调用。
onDestroyView():当Fragment的UI可见部分被移除时调用。
onDestroy():当Fragment被销毁时调用。在这个方法中通常进行最后的资源释放操作。
onDetach():当Fragment与Activity脱离关联时调用。在这个方法中通常进行清理操作,例如取消异步任务等。

四、启动service的方式

service是一种特殊的组件,它可以在后台运行,处理耗时操作或长时间运行的任务,而不需要与用户进行直接交互。下面介绍几种启动Service的方式。

1、startService()方法启动Service
使用startService()方法启动Service可以让Service在后台持续运行,即使调用者Activity已经被销毁也不会影响Service的运行。启动Service的方式如下:

	Intent intent = new Intent(context, MyService.class);
	startService(intent);

2、bindService()方法启动Service
使用bindService()方法启动Service通常用于 Service 与Activity之间的通信,一旦Activity与Service建立绑定关系,它们可以交换信息,同时Service也会随着Activity的生命周期自动启动和停止。启动Service的方式如下:

	Intent intent = new Intent(context, MyService.class);
	bindService(intent, connection, Context.BIND_AUTO_CREATE);

3、声明Service元素启动Service
在AndroidManifest.xml文件中声明Service元素也可以启动Service。这种启动方式通常用于在应用程序启动时预加载一些必要的服务,例如后台数据同步等。在AndroidManifest.xml中声明Service元素的代码如下:

	<service
	    android:name=".MyService"
	    android:enabled="true"
	    android:exported="false" />

以上三种方式都可以启动Service,但它们的实现方式和使用场景不同。在使用时需要考虑到Service的生命周期、数据通信的安全性等因素。同时,还需要根据不同的业务需求选择不同的启动方式。

五、Android各版本特性

  1. Android 1.0(2008年9月23日)
    Android系统的第一版,包含基本的应用程序和功能,如电话、短信、浏览器、多点触控屏幕等
  2. Android 1.5 Cupcake(2009年4月30日)
    Cupcake版本引入了许多新特性,包括可卸载的应用程序、软键盘、摄像头和视频录制功能、蓝牙文件传输、加速度计等。
  3. Android 1.6 Donut(2009年9月15日)
    Donut 版本主要新增了搜索功能和支持CDMA网络的改进,同时还引入了快捷拨号、自动旋转屏幕等特性。
  4. Android 2.0/2.1 Eclair(2009年10月26日)
    Eclair版本新增了支持多点触控、Google Maps导航、相机闪光灯、语音搜索等新特性,同时还改进了交互设计和性能。
  5. Android 2.2 Froyo(2010年5月20日)
    Froyo版本添加了移动热点、USB和Wi-Fi Tethering、Adobe Flash支持、数据备份等新特性,并且在性能上进行了大幅度的提升。
  6. Android 2.3 Gingerbread(2010年12月6日)
    Gingerbread版本引入了更多的处理器支持、更高的屏幕分辨率以及改进的键盘设计和多媒体支持,同时还增强了电源管理和系统管理。
  7. Android 3.0/3.1/3.2 Honeycomb(2011年2月22日)
    Honeycomb 版本是为平板电脑设计的Android操作系统,新增了类似于桌面电脑的界面设计,以及对硬件加速和多任务操作的支持。
  8. Android 4.0 Ice Cream Sandwich(2011年10月19日)
    Ice Cream Sandwich版本将手机和平板电脑的版本进行了统一,同时引入了具有创新性的新特性,如人脸解锁、Android Beam NFC传输等。
  9. Android 4.1/4.2/4.3 Jelly Bean(2012年6月27日)
    Jelly Bean版本继续提高了性能和稳定性,并且新增了Google Now语音助手、通知栏等新特性。
  10. Android 4.4 KitKat(2013年10月31日)
    KitKat版本通过项目Svelte在保证性能的同时减少了内存使用量,同时还引入了透明状态栏、全局打印支持等新特性。
  11. Android 5.0/5.1 Lollipop(2014年11月3日)
    Lollipop版本引入了全新的Material Design设计语言,改善了电池寿命,加强了安全机制,同时还增加了多用户功能、通知分类等新特性。
  12. Android 6.0 Marshmallow(2015年10月5日)
    Marshmallow版本增加了Google Now on Tap、应用程序权限控制、指纹识别、音量控制等新特性,加强了系统性能、优化了电池寿命。
  13. Android 7.0/7.1 Nougat(2016年8月22日)
    Nougat版本新增了分屏模式、多窗口模式、直接回复通知、更快的应用程序安装、虚拟现实支持等新特性。
  14. Android 8.0/8.1 Oreo(2017年8月21日)
    Oreo版本增加了图片中搜索、自适应图标、通知栏颜色、PIP模式、背景执行限制等新特性,提高了系统稳定性和性能。
  15. Android 9 Pie(2018年8月6日)
    Pie版本引入了“基于意图”的自适应应用程序、AI辅助、手势导航、数字禁食模式、可控制的亮度等特性。
  16. Android 10(2019年9月3日)
    Android 10以新的形式提供了隐私和安全功能,包括数据访问控制、Face Unlock、全息式调色板等新特性。
  17. Android 11(2020年9月8日)
    Android 11 添加了一些新特性,例如即时回复消息、屏幕录制、通知历史记录和媒体控件。该版本还增强了隐私功能和安全性。

以上是Android各个版本的主要特性,每一个版本都有不同的特点和亮点,开发者和用户可以根据自己的需求选择适合自己的版本。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值