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

智能推荐

【数据采集与数据清洗】课堂笔记_scribe数据采集-程序员宅基地

文章浏览阅读3.4k次,点赞4次,收藏40次。第一章 大数据概述1.1 进入大数据时代的原因第三次信息化浪潮信息科技为大数据时代提供支撑1)存储设备容量不断增加2)CPU处理能力大幅提升3)网络带宽不断增加数据产生方式的变革促成大数据时代来临1.2 大数据概念:大数据不仅仅是数据的“大量化”,而是包含“快速化”“多样化”和 “价值化”等多重属性1.3 大数据应用大数据关键技术1)大数据处理过程:大数据采集-大数据预处理-大数据存储-大数据分析与挖掘-大数据可视化2)大数据技术体系:数据采集与预处理技术,分布式数据存储技._scribe数据采集

c/c++动态指定sprintf字符串的宽度_sprintf 指定宽度-程序员宅基地

文章浏览阅读1.4k次。sprintf函数可用*号指定字符串的长度 int width = 8; char *buf = new char[width+1]; sprintf(buf, "%0*d", width, 1); cout << buf << endl; delete buf;输出结果:00000001_sprintf 指定宽度

JEECG - 基于代码生成器的J2EE智能开发框架 续六 JEECG 前台页面和后台交互讲解_easyui代码生成器 java-程序员宅基地

文章浏览阅读291次。JEECG - 基于代码生成器的J2EE智能开发框架 续六 JEECG 前台页面和后台交互讲解_easyui代码生成器 java

MFC90条技巧-带目录_mfc status message-程序员宅基地

文章浏览阅读2.3k次。1."属性页的添加:2."List Control中标题栏(Column)的添加:3."ToolBar和StatusBar中控件的添加:4."通过Control创建的控件,对其属性的动态控制:5."窗口的分割与停靠:6. ①怎样在程序开始的时候让它最大化?②vc++做出来的exe文件在窗体的右上方是没有最大化和最小化按钮的,怎样实现这一功能?_mfc status message

C++ 构造函数和析构函数 详解_c构造函数和析构函数-程序员宅基地

文章浏览阅读2.3w次,点赞145次,收藏780次。C++中用构造函数和析构函数来初始化和清理对象,这两个函数将会被编译器自动调用。对象的初始化和清理是非常重要的,如果我们不提供构造函数与析构函数,编译器会自动提供两个函数的空实现。............_c构造函数和析构函数

C++11 多线程_c11多线程打印abc十次-程序员宅基地

文章浏览阅读282次。C++11开始支持多线程编程,之前多线程编程都需要系统的支持,在不同的系统下创建线程需要不同的API如pthread_create(),Createthread(),beginthread()等,使用起来都比较复杂,C++11提供了新头文件、、、等用于支持多线程。使用C++11开启一个线程是比较简单的,下面来看一个简单的例子:#include #include_c11多线程打印abc十次

随便推点

关于今天解决IE6样式兼容及.net3.5网站发布问题-程序员宅基地

文章浏览阅读128次。1.上下两个div在ie6下有间距,但在ie7下正常,如何修正? overflow:hidden 两个DIV的样式加上这个overflow:hidden,或者上面的DIV加上这个 2.ie6下png图片和png背景透明 参考资料:http://mynee.blogbus.com/logs/24109302.html 3.区别不同浏览器,CSS hack写法: ..._ie6需要哪个版本.net framework

Python + Selenium: expected_conditions介绍_python selenium expected_conditions-程序员宅基地

文章浏览阅读9.9k次,点赞16次,收藏71次。expected_conditions是Selenium的一个模块,selenium.webdriver.support.expected_conditions,可以对网页上元素是否存在,可点击等等进行判断,一般用于断言或与WebDriverWait配合使用。上一次介绍WebDriverWait的时候就曾经提过,WebDriverWait中的until()和until_not()中的方法,必须是可..._python selenium expected_conditions

Chrome 控制台的console用法收集_谷歌浏览器console下面如何查找-程序员宅基地

文章浏览阅读1k次。Chrome 控制台console的用法大家都有用过各种类型的浏览器,每种浏览器都有自己的特色,本人拙见,在我用过的浏览器当中,我是最喜欢Chrome的,因为它对于调试脚本及前端设计调试都有它比其它浏览器有过之而无不及的地方。可能大家对console.log会有一定的了解,心里难免会想调试的时候用alert不就行了,干嘛还要用console.log这么一长串的字符串来替代alert输出_谷歌浏览器console下面如何查找

移动端web使用了input type=file点击却无法打开文件选择器(vue)_html 的input 在夸克浏览器中无法使用选择文件-程序员宅基地

文章浏览阅读4k次。**问题:**移动端web使用了input type=file点击却无法打开文件选择器(vue),找了好一会才找到问题所在,原因是在input的上级元素上的事件上添加了阻止默认事件。去掉之后就可以打开了。_html 的input 在夸克浏览器中无法使用选择文件

命令模式—C++实现撤消重做_c++中撤销和恢复的设计逻辑-程序员宅基地

文章浏览阅读5.7k次,点赞3次,收藏23次。Command结构 意图 将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤消的操作。适用性 1、抽象出待执行的动作以参数化某对象,你可用过程语言中的回调(c a l l b a c k )函数表达这种参数化机制。所谓回调函数是指函数先在某处注册,而它将在稍后某个需要的时候被调用。C o m m a n d 模式是回调机制的一个面向对象的替_c++中撤销和恢复的设计逻辑

移动通信核心网络技术总结(三)EPC网络的结构及原理_epc网络架构图-程序员宅基地

文章浏览阅读1.2w次,点赞11次,收藏128次。核心网络技术总结(三)EPC网络原理EPC网络结构及功能EPC网络中存在着以下几个网元:eNodeB、MME、HSS、PCRF、SGW、PGW我们可以拿坐火车的过程进行类比,我们把数据比作乘客,那么eNodeB就相当于火车站,数据从eNodeB上车。MME和HSS就相当于火车站的播报员和管理员,他们告诉你在哪个候车厅上车、车去哪里。当你知道去哪里候车后,要通过SGW上车,SGW就相当于检票口,过了这个口数据就从用户端到达了PDN端,相当于上了火车通过这里前往别的省份, PDN将带领你前_epc网络架构图