androidStudio移动开发结课总结_android studio结课报告-程序员宅基地

技术标签: 大学课程  

移动开发课程需要答辩,所以简单总结一些常识用来复习。

一、四大组件

首先,我们需要知道安卓移动开发的四大组件是什么?

activity:一个Activity就是一个单独的屏幕(窗口),Activity直接通过Intent对象进行通信。另外注意,安卓的每一个Activity都必须在项目的AndroidManifest.xml配置文件中声明,否则系统将无法识别。如下:
在这里插入图片描述

service: service一般用于在后台完成用户指定的操作。Service分为两种,一种是started(启动),一种是bound(绑定);这么说可能不好懂,但是你只需要知道他们的区别就是前者的生命周期与调用它的组件无关,可以在后台无限制运行;而后者一旦被调用,它的生命周期即和调用它的组件绑定在一起了,调用者一旦退出,服务也会终止。
这里也要在AndroidManifest.xml配置文件中声明,例如:(这里调用了一个地图的服务)
在这里插入图片描述

content provider:当我们需要在多个应用之间共享内容时,即需要Content provider实现数据共享。比如说通讯录的数据被多个应用程序使用,他们不是重新开辟空间将其复制,而是都存储在一个内容提供者中,它的好处就是统一数据访问方式,实现数据共享。其他应用可以通过ContentResolver类从该内容提供者中获取或存入数据。

broadcast receiver:广播接收者,这个组件是用来干嘛的呢?有点类似于一个接收器吧,主要用来对外部事件进行过滤。比如你的扣扣,别人给你发消息了,就会发出滴滴的提示音,支队感兴趣的外部实践进行接收并作出反应,进而通知用户。广播接收者的注册方法主要有两种,分别为程序动态注册和在应用程序配置文件中惊天注册。动态注册广播接收器特点是当用来注册的Activity关掉后,广播也就失效了。静态注册无需担忧广播接收器是否被关闭,只要设备是开启状态,广播接收器也是打开着的。也就是说哪怕app本身未启动,该app订阅的广播在触发时也会对它起作用。

二、五大存储

1)SharedPreference方式
在这里插入图片描述

2)文件存储方式:
提供了openFileInput和openFileOutput方法读取设备上的文件。

//确定要操作的文件名
String File_name = "tempfile(temp.tmp)";
//初始化
FileOutputStram fos = openFileOutput(File_name,Context.MODE_PRIVATE);
//创建写入流
FileInputStream fis = openFileInput(File_name);

3)SQLite数据库
支持sql语句的轻量级的嵌入式数据库。
创建数据表的方式:

public class DBOpenHelper extends SQLiteOpenHelper {
    

    //定义创建数据表dict的SQL语句
    final String CREATE_TABLE_SQL =
            "create table dict1(_id integer primary " +
                    "key autoincrement ,text)";
    public DBOpenHelper(Context context, String name,
                        SQLiteDatabase.CursorFactory factory, int version) {
    
        super(context, name, null, version);     //重写构造方法并设置工厂为null
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
    
        db.execSQL(CREATE_TABLE_SQL);
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    

    }
}

4)内容提供者:Content provider提供数据
5)网络存储方式:通过外部网络地址获取信息

三、六大布局

各种布局方式各有其特点,但就个人而言,还是比较喜欢线性布局的布局套布局方式。

  1. 线性布局:LinearLayout
  2. 表格布局:TableLayout
  3. 网格布局:GridLayout
  4. 相对布局:RelativeLayout
  5. 绝对布局:AbsoluteLayout
  6. 帧布局:FrameLayout

四、了解一下activity的生命周期

首先我们需要知道,Activity的生命周期一共有七种状态。
创建 -> 启动 -> 继续 - >暂停 -> 停止 -> 毁灭 ->重新开始

在这里插入图片描述
瞎画的图,但是大概应该就是这样。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/Zheng_lan/article/details/111127521

智能推荐

CCF-201912-1-报数-程序员宅基地

文章浏览阅读170次。题目:http://118.190.20.162/view.page?gpid=T100#include <bits/stdc++.h>using namespace std;bool check7(int x){ if(x%7==0) return true; string s=to_string(x); for(int i=0;i<s.size();i++) { if(s[i]=='7')

1.狂神说java-docker入门笔记_【狂神说java】docker 笔记-程序员宅基地

文章浏览阅读906次。狂神视频地址:https://www.bilibili.com/video/BV1og4y1q7M4?p=1<<三体>>: 弱小和无知不是生存的障碍,傲慢才是。即使再小的帆,就往死里学狂神说java-docker笔记Docker 学习大纲展示1.Docker概述1.1Docker为什么出现?2.Docker安装3.docker命令帮助命令镜像命令容器命令Docker 学习大纲展示Docker 概述Docker安装Docker命令镜像命令容器命令操作命令。。。._【狂神说java】docker 笔记

springsecurity自定义userService和认证逻辑(在springboot中)_userservice instanceof springsecurityuserservice-程序员宅基地

文章浏览阅读2.2k次。看了一下感觉这东西还挺难的,得写点什么来总结一下。1.要启用springsecurity很简单只需要在pom.xml中添加相关依赖就行了<dependency><groupId>org.springframework.boot</groudId><artifactId>spring-boot-starter-security</artifactId></dependency>2.准备User类和Role类,这里直接用JPA_userservice instanceof springsecurityuserservice

radio android代码,FM移植包(基于Android4.4) android FM 收音机 驱动 hal层应用层代码以及 框架层(Android FM radio driver - 下载 -...-程序员宅基地

文章浏览阅读480次。移植说明.txt方法二(FmService写在系统服务)\android 平添系统服务 - Android.htm方法二(FmService写在系统服务)\Android 添加系统服务.htm方法二(FmService写在系统服务)\bionic\libc\kernel\common\linux\Hw_fm.h方法二(FmService写在系统服务)\FmRadio\FmRadio\.classp..._android fm收音机github

MDPI latex模板使用问题汇总_mdpi期刊latex模板报错-程序员宅基地

文章浏览阅读2w次,点赞14次,收藏51次。MDPI的latex模板是有挺多不科学的问题嗯。。。一、算法行距太小、文字重叠若使用algorithmic模块制作算法,会发现算法行距太小、发生重叠,排版特别丑。。解决方法:只需要在导言区加入:\usepackage{etoolbox}\AtBeginEnvironment{algorithmic}{\let\item\olditem}参考issue:https://git..._mdpi期刊latex模板报错

郭盛华动真格了!新公司获百亿融资,网友:还招人不_郭盛华网络公司-程序员宅基地

文章浏览阅读452次。郭盛华是一个低学历、没背景、没靠山的农村小伙,他在网络安全领域取得了惊人的成功。郭盛华创办的东方联盟,凭借庞大的技术库和人力资源,可与美国的“匿名者黑客组织”平分秋色,这种硬实力,也是支撑郭盛华说话如此硬气的原因之一,持续不断地为他开启征战之旅,走出过山车般的人生,也得到了广大网友的一致认可。说起郭盛华,做互联网行业的朋友一定不陌生,他是中国互联网安全领域,可以说不是最富有的,也不是学历最高的,但是一定是人气最高的。郭盛华从小爱看墨菲定律的书籍,是一个非常自律的人,他在15岁的时候就进入了肇庆市_郭盛华网络公司

随便推点

STM32嵌入式系统笔记(STM32F103)_stm32f103的微处理器采用哪种结构-程序员宅基地

文章浏览阅读2k次。pip是一个安装和管理Python包的工具mosquitto_stm32f103的微处理器采用哪种结构

qml语言基础_qml 创建空窗口-程序员宅基地

文章浏览阅读162次。如上图,新建一个空的Qt Quick Application,运行就是一个空的窗口文件import语句导入模块,类似于c++中的includeQtQuick 2.9:此模块为创建图形用户界面提供了最基本的类型QtQuick.Window模块:window类型可以为Qt Quick场景创建一个顶级窗口QML对象对象类型被实例化以后,就叫做该对象类型的对象如Window,在代码中现在就是一个对象,以大写字母开头,后面跟一对大括号,在括号中包含对象的属性QML元素如以下的控件..._qml 创建空窗口

Visual Studio Code 解决因为Vetur导致的红色波浪线报错问题_vscode安装了vetur之后代码报错-程序员宅基地

文章浏览阅读1w次,点赞31次,收藏24次。今天打开我的.wpy文件,突然Visual Studio Code给我报红色波浪线错误,上午打开是没问题,下午打开就报错了,刚开始看到报错有点懵逼,后面百度,弄了半天没弄好。后面自己灵机一闪,弄好了,发个贴,帮助下出现该问题的朋友。先上报错图片,上的别人的报错,类似这种报红色波浪线的报错就是更改vetur配置 vscode->首选项->设置->搜索(v..._vscode安装了vetur之后代码报错

STM32八种IO口模式_stm32 的 io 口可以由软件配置成如下 8 种模式:输入浮空、输入上拉、输入下拉、模-程序员宅基地

文章浏览阅读4.2k次,点赞3次,收藏18次。1、模式介绍STM32有八种IO口模式,分别是:模拟输入、浮空输入、上拉输入、下拉输入、开漏输出、推挽输出、复用开漏输出和复用推挽输出。1、模拟输入GPIO_Mode_AIN模拟输入,即关闭施密特触发器,将电压信号传送到片上外设模块(不接上下拉电阻)。2、浮空输入GPIO_Mode_IN_FLOATING浮空输入。浮空输入状态下,IO的电平状态是不确定的,完全由外部输入决定,如果在该引脚悬空的情况下,读取该端口的电平是不确定的。3&4、上下拉输入GPIO_Mode_IPD下_stm32 的 io 口可以由软件配置成如下 8 种模式:输入浮空、输入上拉、输入下拉、模

scrapy-splash初步学习_annaconda安装splash-程序员宅基地

文章浏览阅读740次。scrapy-splashdocker_annaconda安装splash

KITTI数据集data_object_velodyne中.bin文件转标准点云文件.pcd-程序员宅基地

文章浏览阅读1.5k次,点赞3次,收藏15次。KITTI数据集data_object_velodyne中.bin文件转标准点云文件.pcd最近开始学习自动驾驶领域中基于激光雷达的目标识别方向,自然而然的想到自动驾驶领域有名的数据集KITTI,想要去看一下雷达测到的数据和相机拍到的数据能不能对应上。打开文件,好家伙,创建者为了方便把雷达测到的数据全部转成了二进制bin文件????。在网上转了一圈,发现都是用c++或者python写的转换文件,还要附带安装一车的库(好不方便的说)。算了,自己动手,丰衣足食。从KITTI官网查readme文档,自己写_data_object_velodyne

推荐文章

热门文章

相关标签