2018-10-31

安卓系统是开源的

命名规则:1.5版本后用甜点作为代号

五大布局,

FrameLayout(框架布局)
LinearLayout(线性布局)
Gridlayout(绝对布局)
RelativeLayout(相对布局)
TableLayout(表格布局)

activity的生命周期

  • onCreate(); 当Activity第一次被创建的时候,就会调用OnCreate()方法,在 OnCreate()方法中,通常要设置Activity所使用的布局文件,对按 钮绑定监听器等等静态的设置操作。
  • onResume(); 当这个Activity能够获得用户焦点(即用户在屏幕上进行操作的时 候
  • onPause(); 当第一个Activity通过Intent启动第二个Activity的时候,则会先调用 前一个Activity的onPause()方法
  • onStop(); 当第二个Activity把第一个Activity完全遮挡住的时候,即对用户来说 第一个Activity处于完全不可见的时候,那么第一个Activity则调用 onStop()方法将当前Activity关闭。
  • onDestory(); 此方法将Activity销毁,销毁之后,若想再调用此Activity,则需要从 新调用onCreate方法

页面跳转同时页面值的双向传递

Bundle bundle = new Bundle(); 
bundle.putSerializable("user", user); 
intent.putExtras(bundle);
Intent intent = this.getIntent(); 
user=(User)intent.getSerializableExtra("user");

Intent显示隐式区别

  • 显式intent:通过名字指定目标组件。显式intent通 常用于应用程序内部消息,如一个活动启动从属的服 务或启动一个姐妹活动。
  • 隐式intent:并不指定目标的名字(组件名字字段是 空的)。隐式intent经常用于激活其它应用程序中的 组件。

调用系统Action

Fragment的优点

  • 在Fragment可以使你能够将activity分离成多个可重用 的组件,每个都有它自己的生命周期和UI。
  • Fragment可以轻松得创建动态灵活的UI设计,可以适 应于不同的屏幕尺寸,从手机到平板电脑。
  • Fragment是一个独立的模块,并与activity绑定在一 起,可以静态或者在运行中动态地添加、移除、交换等。
  • Fragment提供一个新的方式让你在不同的安卓设备上 统一你的UI。
  • Fragment 解决Activity间的切换不流畅,轻量切换。
  • Fragment能替代TabActivity做导航,性能更好。
  • Fragment 在4.2版本中新增嵌套fragment使用方法,能够生成 更好的界面效果。
  • Fragment做局部内容更新更加方便,可以在Activity中使用多个 Fragment,并在需要的时候加载Fragment,提高性能。
  • 可以从startActivityForResult中接收到返回结果,但是View不能。

android使用MVC的优点,以及为什么

可以将UI界面显示部分、 业务逻辑和数据处理分开。

  • 程序员可以将UI设计交给美工处理,将重点放在核心 代码的编写上,从而提高效率;
  • 在开发过程中,便于修改、新增、移除新的模块;
  • Android系统专门提供了“res/values/”目录下的诸 如strings.xml、colors.xml类型的文件,便于调用和 修改。

ListView,RecycleView列表展示以及优点,adapter(需要实现的三个方法),布局管理器,注意依赖包的添加

  • 在android开发中ListView是比较常 用的组件,它以垂直列表的形式展示 具体内容,并且能够根据数据的长度 自适应显示。用于呈现多条布局相同 的显示内容。
  • 适配器分为以下三种,均继承自BaseAdapter:
    • ArrayAdapter:支持泛型操作,最为简单,只能展示一行字。
    • SimpleAdapter:有最好的扩充性,可以自定义出各种效效果。
    • SimpleCursorAdapter:可以认为是SimpleAdapter对数据库的 简单结合,可以方面的把数据库的内容以列表的形式展示出来。

CardView各种设置

TableLayout调用addTab的方法加入新页面

DrawerLayout+Toolbar的使用

Android的四大组件,广播接收器(定义方法,两种注册方法)

  • Activity

使用步骤

  1. 创建新的Activity,布局名称LoginActivity,创建布局与创建普通布局文件相同
  2. 在清单文件中添加

    
        
        
    

  1. 主窗体调用子窗体,我们假设从MainActivity跳转至LoginActivity
Intent intent = new Intent();
intent.setClass(MainActivity.this,LoginActivity.class);
startActivity(intent);
  • Service

Service有两种方式,启动的和绑定的
启动的生命周期:创建服务,开始服务,销毁服务。
绑定的生命周期:创建服务,绑定服务,解除绑定,销毁服务。

  • Broadcast Receiver

广播接收器的实现:继承BroadcastReceiver类,重写onReceive方法

public class MyReceiver extends BroadcastReceiver{
    @Override
    public void onReceive(Context context, Intent intent) {
        Toast.makeText(context,"这是一个接收 器:"+intent.getStringExtra("receive"),Toast.LENGTH_LONG).show();
    }
}

广播实现的两种方式
静态注册(在xml中静态指定):在清单文件中注册BroadcastReceiver


     
          

   

动态注册(在程序中动态注册):在java代码中注册BroadcastReceiver

receiveBroadcast = new ReceiveBroadCast();
IntentFilter filter = new IntentFilter();
Filter.addAction(Tag);
registerReceiver(receiveBroadcast,filter)

区别:作用范围不同,动态注册只在程序过程中有效,静态注册是不管程序是否启动都有用

  • Content Provider

提供了应用程序之间共享数据的方法,为存储和 读取数据提供了统一的接口。

  • URI:content://com.example.stuprovider/StuInfo/2/name
    表示需要操作StuInfo表中ID为2的记录的name字段
  • ContentResolver方法介绍:
    • query(Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder): 通过uri进行查询,返回一个Cursor
    • insert(Uri url, ContentValues values): 向uri对应的ContentProvider中插入values对应的数 据,返回最新添加记录的uri。
    • update(Uri uri, ContentValues values, String where, String[] selectionArgs): 更新Uri指定位置的数据,返回更新的行数。
    • delete(Uri url, String where, String[] selectionArgs): 删除指定Uri并且符合一定条件的数据,返回删除的行数。

Service,启动状态or绑定状态

  • 通过startService()启动的服务处于“启动的”状态,一 旦启动,service就在后台运行,即使启动它的应用组件 已经被销毁了。当任务完成时,为了节省系统资源,一 定要停止service,可以通过stopSelf()来停止,也可以 在其他组件中通过stopService()来停止。
  • “绑定”状态的service,通过调用bindService()来启动, 一个绑定的service提供一个允许组件与service交互的接 口,可以发送请求、获取返回结果。绑定的service只有 当应用组件绑定后才能运行,多个组件可以绑定一个 service,当调用unbind()方法时,这个service就会被销 毁了。

发送短信例子(26以下清单文件指明权限,26以上是动态)

本地存储的四种方式:特点及应用场景

  • SharedPreferences:SharedPreferences提供一套 完整的存储基本类型数据的方法,可以将数据保存到 私有数据区,只能被写入这些数据的应用程序读取。
  • Internal Storage:手机内部存储,以文件方式保存 数据,只能本程序使用,外部的应用程序无法访问该 文件;需要注意的是,文件也是临时性的,当卸载本 程序时,该文件也会被删除。
  • External Storage:手机的外部存储(如SD卡),也是以文 件的形式存储数据,一般存储数据量较大的公共数据。需 注意的是,保存在外部存储设备的数据是公开且不安全的, 用户可以自由进行读写操作,甚至可以删除。
  • SQLite Database:SQLite是标准的关系型数据库,具有 小巧、独立性高、安全性高、跨平台和多语言接口等优点, 用户可以使用标准的SQL语句进行数据的增删改查。它内 置于Android系统中,一般用于存储复杂类型的数据。

SharedPreferences的四种操作模式,保存数据时不要忘记commit()

  • Context.MODE_PRIVATE:为默认操作模式,代表该文件是私有数 据,只能被应用本身访问,在该模式下 写入的内容会覆盖原文件的内容
  • Context.MODE_APPEND:该模式会检查文件是否存在,存在就往 文件追加内容,否则就创建新文件
  • Context.MODE_WORLD_READABLE:表示当前文件可以被其他应用读取
  • Context.MODE_WORLD_WRITEABLE:表示当前文件可以被其他应用写入

你可能感兴趣的:(2018-10-31)