zoukankan      html  css  js  c++  java
  • 安卓基础知识

    看第一行代码时学习和记录的

    第一章:

    Android的四层系统架构:

    linux内核层(里那克斯):安卓系统是基于linux内核的,这一层为安卓设备的各种硬件提供了底层驱动

    系统运行库层:这一层通过一些C/C++库来为android系统提供了重要的特性支持

    应用框架层:这一层主要提供了构建应用程序时可能用到的各种API

    应用层:这一层包含所有安装在手机上的应用程序

    Android系统四大组件

    Activity、 Service、 Broadcast Reciver 、Content  Provider

    活动是安卓应用程序的门面,凡是在应用中你看的到的东西,都是放在活动中的

    Activity是安卓系统提供的一个活动基类,我们项目中所有的活动都必须继承它或者它的子类,才能拥有活动的特性

    onCreate()方法,是一个活动被创建时必须要被执行的方法

    安卓程序设计讲究程序和视图分离,因此不推荐直接在活动中编写界面,更通用的一种方法时,在布局文件中编写界面,然后在活动中引进来

    项目中的资源:res文件夹

    drawable开头的放图片

    mipmap开头的放应用图标

    values开头的放字符串 样式 颜色等配置的

    layout开头的放布局文件的

    代码中引用是用R.String.Hello

    xml中引用 @String.Hello

    android studio是利用gradle来构建工程的

    安卓打印日志的工具类是Log,等级首字母为方法名,从低到高分别是verbose、debug、info、warn(警告)、error(严重问题)

    第二章 探究活动

    活动是一种可以包含用户界面的组件,主要用于和用户交互,是安卓应用程序的门面,凡是你所看到的都是放在活动中的

    项目中的任何activity都应该重写Activity类的OnCreate()方法

    最好每一个活动对应一个布局

    点击back按钮可以销毁一个环境,或者使用finish()方法,两者效果是一样的

    点击启动应用的图标只会进入到这个应用的主页活动页面,那么如何跳转到其他活动呢

    使用intent,其中有显式intent和隐式intent

    intent是安卓程序中各组件相互之间进行交互的一种方式,可以指明当前组件想要执行的动作,还可以在各个组件之间传递数据

    intent一般可以用于启动活动,启动服务以及发送广播等场景

    intent的有多个构造函数的重载,比如 Intent(Context,class),即需要两个参数,一个是背景,一个是要打开的活动

    通过intent可以打开网页,一个活动向下一个活动传递数据,返回数据给上一个活动

    活动的生命周期:

    安卓中的活动是可以层叠的,每启动一个新的活动,都会覆盖在原来的活动之上,点击back会销毁上面的活动,下面的一个活动重新展示出来

    安卓是使用任务(Task)来管理活动的,一个任务就是一组存放在栈里的活动的集合,这个栈也被称为返回栈,栈是一种后进先出的数据结构

    启动一个新的活动时,该活动会在返回栈中入栈,位于栈顶,如果该活动被销毁,那么就会展示前一个入栈的活动,系统总是展示处于栈顶的活动给用户

    每个活动在其生命周期最多可能有四个状态:

    1、running 运行状态:当一个活动位于返回栈的栈顶,此时活动处于运行状态

    2、paused 暂停状态:当一个活动不再处于栈顶,但是仍然可见时,此时活动进入暂停状态

    3、stoped 停止状态:当一个活动不再处于栈顶,并且完全不可见时,此时活动进入停止状态,当其他地方需要内存时,停止状态的活动会被回收

    4、killed 销毁状态:当一个活动从返回栈中移除,就变成了销毁状态,系统最倾向于回收处于这种状态的活动,从而保证手机里的内存充足

    (当一个Activity处于暂停状态或停止状态时就随处可能进入死亡状态,因为系统可能因内存不足而强行结束该Activity。
    停止状态到死亡状态分为两种情况:(1)由用户操作导致,则执行:onStop() -> onDestroy()。(2)由系统自动强制执行,则该Activity被强行结束。)

    Activity的七个回调方法

    启动活动(从无要create--start--resume到running状态)

    onCreate() 该方法会在活动第一次被创建的时候调用,进行一些初始化操作

    onStart()该方法在活动从不可见变成可见的时候调用

    onResume()该方法在活动准备好和用户交互的时候调用,此时的活动一定在栈顶且处于运行状态

    活动运行中

    「另一个活动启动,但是并未完全遮盖」

    onPause()在系统准备去启动或者恢复另一个活动的时候调用(paused状态执行resume到running状态paused状态执行stop到stoped状态   )

    「另一个活动启动,且完全遮盖」

    onStop()在活动完全不可见时调用  (stoped状态要执行restart--start-resume到running状态

    「活动被销毁,退出app」

    onDestroy()在活动被销毁之前调用,之后活动的状态将变为销毁状态

    onRestart()在活动由停止状态变成运行状态之前调用,也就是活动被重新启动了

    以上七个方法,除了onRestart()方法,其他都是俩俩相对的

    点击app图标后主活动启动,再点击进入其他页面,这个过程中回调方法的使用,和活动状态的变化

    1-点击app图标--主活动被创建,主活动依次执行onCreate() onStart() onResume()方法,主活动是run运行状态

    2-点击一个全遮盖主活动活动入口,主活动依次执行onPause() onStop(),主活动是Stop停止状态

    3-此时点击返回按钮回到主活动页面,执行onRestart()方法,之后依次执行onStart() onResume()方法,主活动run状态

    4-此时点击一个对话类型的活动入口,主活动执行onPause()方法,主活动paused状态

    5-再次点击返回按钮,主活动执行onResume方法,主活动run状态

    6-再次点击返回,主活动依次执行onStop() onDestroy()

    简单来说,启动app,主活动依次执行方法 onCreate onStart onResume 到达running状态,其中onCreate是第一次创建活动才会调用

    running活动被完全遮盖,主活动依次执行(onPause onStop)到stoped状态,如果从stoped状态到running,需要onRestart onStart onResume

    running活动被部分遮盖,主活动执行onPause到paused状态,如果从paused状态到running,需要onResume

    活动正在running,关闭app主活动依次执行方法 onPause onStop onDestroy 到destroyed状态,其中onDestroyed要活动被销毁或者被收回时执行

    app放在后台时,主活动要从当前状态到达stoped状态,如果是running那么依次执行onPause onStop到stoped状态,如果是paused那么执行onStop到stoped状态,已经stoped状态则不变

    app从后台唤醒时,主活动走stoped状态挥发到之前的状态的步骤,如果之前是running那么走onRestart onStart onResume,如果之前是paused那么只走onRestart  onStart

  • 相关阅读:
    G
    ZOJ 3782
    23.内存池
    22.boost图模板
    21.boost Ford最短路径算法(效率低)
    20.boost dijkstra最短路径算法
    19.boost A*算法
    18.boost 图的拓扑排序
    17.广度优先遍历bfs
    16.boost图深度优先遍历DFS
  • 原文地址:https://www.cnblogs.com/zhuwf/p/12403530.html
Copyright © 2011-2022 走看看