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