移动设备软件开发是指为智能手机、平板电脑等移动设备设计和开发应用程序的过程。移动设备软件开发涉及多种技术、平台和工具,例如Android、iOS、Windows Phone、Flutter、React Native等。移动设备软件开发的目的是为用户提供便捷、高效和有趣的移动体验,满足用户的各种需求和偏好。
这个系列的文章是对Android开发学习的一点记录(也许还有实验什么的),不管是作为分享还是稍微巩固一下可能都是有益的(误)
使用书籍:疯狂Android讲义
ide: Android Studio
Android是一种基于Linux内核的开源移动操作系统,主要用于智能手机和平板电脑。Android最初由安迪·鲁宾(Andy Rubin)等人开发,后来被谷歌收购。Android的第一个商用版本于2008年9月23日发布,目前已经发展到Android 12,是全球最流行的移动操作系统之一。Android的特点包括多任务处理、丰富的应用程序商店、多种用户界面、高度可定制性和跨平台兼容性等。
Android应用是由四种基本组件构成的:活动(Activity)、服务(Service)、广播接收器(Broadcast Receiver)和内容提供器(Content Provider)。这些组件可以相互协作,也可以独立运行,具有不同的功能和生命周期。
活动(Activity)是用户与应用交互的界面,每个活动都对应一个屏幕。活动之间可以通过意图(Intent)来启动或传递数据。活动有自己的生命周期,包括创建、启动、运行、暂停、停止和销毁等状态。
服务(Service)是在后台执行长时间任务的组件,不需要用户交互。服务可以在应用的进程内或者在其他进程中运行,也可以通过意图来启动或绑定。服务有自己的生命周期,包括创建、启动、运行、绑定、解绑和销毁等状态。
广播接收器(Broadcast Receiver)是用来接收和响应系统或应用发出的广播消息的组件,例如电池低电、网络变化、短信到达等。广播接收器没有用户界面,也没有自己的生命周期,只在接收到广播时被激活,执行完逻辑后就销毁。
内容提供器(Content Provider)是用来管理和共享应用数据的组件,例如联系人、照片、音乐等。内容提供器通过统一的接口来提供数据,其他应用可以通过内容解析器(Content Resolver)来访问或修改数据。内容提供器有自己的权限机制,可以控制数据的访问范围和安全性。
Activity组件是四大组件之一,在应用中一个Activity可以用来表示一个界面, 中文意思也可以理解为“活动” ,即一个活动开始,代表Activity组件启动;活动结束,代表一个Activity的生命周期结束。
一个android应用必须通过Activity来运行和启动,和J2ME 的MIDlet 一样,在android中,Activity的生命周期统一交给系统管理。与MIDlet 不同的是安装在android 中的所有的Activity 都是平等的。
理解以下四个基本概念,将有助于我们更好的了解Activity:
• Application(APP)
• Activity
• Activity栈
• Task
每个Application均占有独立的内存空间。需要注意的是:Application之间虽然相互独立,但APP_1中的Activity与APP_2中的Activity之间可以进行通信(调用、访问等)。
1、Activity的状态:
(1)Resumed:Activity对象出于运行状态。一个新Activity 启动入栈后,它在屏幕最前端,处于栈的最顶端,此时它处于可见并可以与用户交互的激活状态。
(2)Paused:另一个Activity位于前端,但是本Activity还可见。
Paused状态常用于:当Activity被另一个透明或者Dialog样式的Activity覆盖时的状态。此时它依然与窗口管理器保持连接,系统继续维护其内部状态,所以它仍然可见,但它已经失去了焦点故不可与用户交互。注:一个Activity出于paused状态时,系统并不会释放资源。释放资源你的操作要靠开发者来完成。
(3)Stopped:另一个Activity位于前端,完全遮挡本Activity。
(4)killed:Activity被系统杀死回收或者没有被启动时。
2、Activity的生命周期:
(我说怎么到处都是这张图,原来是从Android开发者文档拿的)
生命周期代码:
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
public class MainActivity extends Activity {
private static final String TAG = "smyhvae";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Log.d(TAG, "onCreate");
}
@Override
protected void onStart() {
super.onStart();
Log.d(TAG, "onStart");
}
@Override
protected void onResume() {
super.onResume();
Log.d(TAG, "onResume");
}
@Override
protected void onPause() {
super.onPause();
Log.d(TAG, "onPause");
}
@Override
protected void onStop() {
super.onStop();
Log.d(TAG, "onStop");
}
@Override
protected void onDestroy() {
super.onDestroy();
Log.d(TAG, "onDestroy");
}
@Override
protected void onRestart() {
super.onRestart();
Log.d(TAG, "onRestart");
}
}
暂时就先到着吧(毕竟就讲到这,虽然可以提前写,但是我还是希望有条理一点)
以上。