当前位置:   article > 正文

Android应用开发期末复习(四大组件+Intent+GUI)_android app开发期末选择

android app开发期末选择

1.Android概述

安卓是2008年发布的一个移动端的操作系统

手机的操作系统:1.iOS 2.android 3.塞班  4.Windows Phone

  

1.1Android是基于Linux的开源操作系统,主要用于智能手机和平板电脑等移动设备

1.2 SDK: software development kit 软件开发工具包

1.3 Android系统的体系结构:

        1.应用程序层

        2.应用程序框架层

        3.系统运行库层(android系统运行时库)

        4.Linux内核

1.4 安卓的安装包  .apk     安卓的运行文件 app

2.Andriod开发基础

2.1 开发工具

     Android Studio(基于IDEA)

     Eclipse(现在不支持了,弃用)

2.2 开发语言

     前台显示:XML(可拓展样式文件)

     前台逻辑:Java (Kotlin也可以 [.kt])

2.3 Dalvik虚拟机:

     每一个Android应用程序都运行在一个Dalvik虚拟机示例上,每一个虚拟机示例都是一个独立的进程空间,多个进程之间可以通信

2.4 配置的环境:

     Java开发环境:JDK 

     打包文件(可以不配置): Gradle

     Android SDK

2.5 项目与模块:

一个项目可以包含多个功能单元,每一个功能单元对应一个模块

     1.Android应用模块

     2.库模块

     3.Google Cloud 模块

2.6 资源索引文件:R.java

     R.java文件是什么?它有什么作用?

   R.java是系统自动生成的一种资源索引文件,对于开发者而言,这个文件是可读不可写的文件

2.7 配置文件(清单文件)AndroidManifest.xml

        创建activity,service,BoardReceiver,Provider或者声明权限的时候使用

  • <manifest>定义版本号,包名等系统配置文件
  • <application>定义包括应用程序的配置文件,包括图标这些
  • <activity>activity声明标签,不声明,则不予识别该activity
  • <uses-permission> 声明权限
  • <service>用来定义与描述具体的Android服务
  • <receiver>用来定义安卓中的广播接收器
  • <provider>声明数据提供者

2.8 四大核心组件:

   1.activity 活动:最常用的一种,是用户与应用程序交互的窗口

            一个Android应用程序可以有多个activity,一个activity通常对应一个独立的窗口

   2.ContentProvider 数据提供者 :

              是一种全新的数据共享模式,如果一个窗口需要对外提供数据,就可以发布一个数据提供者和资源uri ,提供统一的数据访问接口

   3.Service 服务:

             没有用户界面,也不能和用户交互的一种特殊的组件,可以在后台运行,它既不是进程也不是线程

   4.BroadcastReceiver广播接收器:全局监听器,是一种单向信息传递机制

2.9 Android应用程序的程序入口点:android.app.Application包中的onCreate()

3.androidGUI设计(布局文件):

   3.1 样式资源和主题资源的区别:

        1.样式文件作用于单个view组件

        2.主题作用于整个应用程序所有的Activity,或对指定的Activity起作用‘

        3,主题定义的格式应该是窗口外观的格式

GUI:用户界面,图形图像接口

   3.2 View常用的属性

       android:id                     组件ID

       android:layout_width    显示宽度

       android:layout_height    显示高度

       android:background     用来定义背景色和背景图片

  

宽度和高度的属性:match_parent 填充父容器的空白空间

   3.3事件处理---点击

       Onclick

       OnclickListener

   3.4布局:

RelativeLayout:相对于其他控件或者容器决定控件的位置;

         android:gravity  中的center_vertical 垂直  center_horizontal 水平

LinearLayout:使控件以竖直或者水平方向排列;

TableLayout:使控件以表格形式排列;

GirdLayout:能使控件交错显示,能够避免因布局嵌套对设备性能的影响,更利于自由

布局的开发;

FrameLayout:使控件按照创建顺序在屏幕的左上角重叠显示;

AbsoluteLayout:通过绝对的坐标控制控件摆放的位置。

4.android 前端组件

     1.文本:TextView

<?xml version="1.0" encoding="utf-8"?>

<TextView

    android:layout_width="match_parent"

    android:layout_height="200dp"

    android:autoSizeTextType="uniform" />

     2.可编辑文本框:EditText

<EditText
     android:id="@+id/plain_text_input"
     android:layout_height="wrap_content"
     android:layout_width="match_parent"
     android:inputType="text"/>

     3.按钮:Button


  <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
      xmlns:app="http://schemas.android.com/apk/res-auto"
      android:layout_width="match_parent"
      android:layout_height="match_parent"
      android:paddingLeft="16dp"
      android:paddingRight="16dp"
      android:orientation="vertical" >
      <Button
          android:id="@+id/supabutton"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:text="I'm a button" />
      <Button
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:drawableStart="@drawable/baseline_android_24"
          android:drawablePadding="4dp"
          android:drawableTint="#ff0000"
          android:text="I'm a button with an icon" />
  </LinearLayout>

     4. 图片按钮: ImageButton    android:src中定义图标

    <ImageButton
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:contentDescription="A tiny Android icon"
          android:src="@drawable/baseline_android_24"
          app:tint="#ff0000" />

     5.复选框 CheckBox


<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <CheckBox android:id="@+id/checkbox_meat"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Meat" />
    <CheckBox android:id="@+id/checkbox_cheese"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Cheese"/>
</LinearLayout>

     6.单选按钮:RadioButton

<?xml version="1.0" encoding="utf-8"?>

<RadioGroup xmlns:android="http://schemas.android.com/apk/res/android"

    android:layout_width="match_parent"

    android:layout_height="wrap_content"

    android:orientation="vertical">

    <RadioButton android:id="@+id/radio_pirates"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:text="@string/pirates"

        android:onClick="onRadioButtonClicked"/>

    <RadioButton android:id="@+id/radio_ninjas"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:text="@string/ninjas"

        android:onClick="onRadioButtonClicked"/>

</RadioGroup>

     7.图片组件:ImageView

<ImageView

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:src="@drawable/my_image"

        android:contentDescription="@string/my_image_desc" />

5.    4大组件

    1、活动Activity:

        定义: 为用户提供一个交互的接口   把数据信息展示给用户,提供数据操作的入口,控制页面的跳转,调用后台其他功能的组件

        Tips:一个Android程序可以有多个activity组成,只能有一个activity

        生命周期函数:

                

onCreate()

启动activity调用

onStart()

当即将可见的时候调用

onRestart()

重启时候调用

onResume()

与用户可交互时候调用

onPause()

被暂停时候调用

onStop()

当activity不可见的时候调用

onDestory()

被摧毁时调用

  生命周期:

          1. 启动状态
          2. 运行状态:可见可交互状态:onResume()
          3. 暂停状态:可见不可交互状态:onStart(),onPause()
          4. 停止状态:不可见状态:onCreate(),onRestart(),onStop()
          5. 销毁状态:onDestory()

如何引用xml显示文件?:

    在onCreate()方法中,setContentView(R.layout.xml文件)

Activity的启动方法:

    1.显示启动

         有返回值和无返回值的方法

      无返回值:

            Intent intent = new Intent(当前activity.this,目标activity.class);

            startActivity(intent);

      有返回值:

           final int REQUEST_CODE = 1;//定义请求码

           Intent intent = new Intent(当前activity.this,目标activity.class);

           startActivity(intent,REQUEST_CODE);

    2.隐式启动

        在清单文件中我们注册activity的地方添加<intent-filter>

      <intent-fliter>

            <action android:name = “android.intent.action.VIEW”>

            ……

      </intent-fliter>

2、 请简要说明 Activity 的三种状态以及不同状态使用的方法。

Activity 三种状态分别是:

    1. 运行状态:该状态下可以对界面进行操作
    2. 暂停状态:界面可见但不具有焦点无法点击
    3. 停止状态:界面不可见,一般在停止状态时保存数据以防止程序被系统强制杀死。

2、广播接收器 BroadcastReceiver

本质上是一个全局监听器

分类;应用广播,系统广播

Android主要采用异步广播机制来处理组件的信息传递

实现广播和接收Intent的步骤

①销毁定义BroadCaseReceiver广播接收器 ②注册BroadCaseReceiver广播接收器 ③发送广播 ④执行 ⑤销毁

分类

普通广播: 通 过 context. sendBroadcast 或 者 context. sendBroadcastAsUser发送给当前系统中所有注册的接受者,也就是 只要注册了就会接收到;

有序广播:接收者按照优先级处理广播,并且前面处理广播的接受者 可以中止广播的传递,一般通过context. sendOrderedBroadcast或 者context. sendOrderedBroadcastAsUser;

粘性广播:可以发送给以后注册的接受者,即系统会将前面的粘性广 播保存在AMS中,一旦注册了与已保存的粘性广播符合的广播,在注 册结束后会立即收到广播,一般通过context. sendStickyBroadcast 或context.sendStickyOrderedBroadcast来发送,从字面上看,可以 看出来粘性广播也分为普通粘性广播和有序粘性广播网络切换的广播就是一种粘性广播

3、服务service

     不是进程也不是线程

     执行无须与用户交互且需要长期执行的功能

     当系统资源紧张时,service不会被系统优先终结

     分类:本地服务,远程服务

     生命周期:onCreate(),onStartCommand(),onBind(),onRebind(),onUnbind()onDestory()

4、数据提供者 ContentProvider

不同应用程序共享数据的唯一方式

URI:通用资源标识符

格式:content://<authority>/[<dataPath>/<id>]

  1. content:通用前缀
  2. authority:数据提供者授权识别码
  3. dataPath:数据路径
  4. id:数据项编号,数据条目主键

ContentProvider提供的数据操作方法类似于操作一个数据库,便于结构化操作

一个应用程序可以创建多个数据提供者,它们必须继承ContentProvider类,并重写他们的接口方法

重要的类:主要涉及类的增删改查

5.Intent

Intent是一个动作的完整描述,包含了产生组件、接收组 件和传递数据信息。

 Intent是Android应用内不同组件之间的通讯载体。Intent是同一或不同应用程序之间的一种运行 时绑定(runtime binding)机制,它能在程序运行的 过程中连接两个不同的组件。

Intent启动Activity、Service和BroadcastReceiverd :

  1. 启 动 Activity : 调 用 startActivity(Intent intent) 或 startActivityForResult(Intent intent,int requestCode)方法
  2. 启 动 Service : 调 用 startService(Intent intent) 或 bindService(Intent intent,ServiceConnection conn ,int flags)方法
  3. 触 发 BroadcastReceiver 时 : 调 用 sendBroadcast(Intent intent)方法

Intent分类

◆ 显式Intent ◆ 隐式Intent

Intent属性

 Component组件 Action动作 Category类别 Data数据 Type数据类型 Extras扩展信息 Flags标志位

显式Intent启动Activity

通过Intent来显式地指定要打开的

Activity Intent intent = new Intent(MyActivity.this, MyOtherActivity.class); startActivity(intent);

隐式Intent启动Activity

  1. 使匿名的应用程序组件响应动作请求
  2. 构建一个隐式的Intent时,需要指定一个所要执行的动作
  3. 通过向Intent添加Extra的方式来向目标Activity发送额 外的数据
  4. 当多个Activity都能够执行指定的动作时,会向用户呈现 各种选项供用户手动选择

  1. 显式Intent

Intent downloadIntent = new Intent(a.this, b.class);

startActivity(downloadIntent);

  1. 隐式Intent

Intent sendIntent = new Intent();

sendIntent.setAction(Intent.ACTION_SEND);

sendIntent.putExtra(Intent.EXTRA_TEXT, textMessage);

sendIntent.setType("text/plain");

if (sendIntent.resolveActivity(getPackageManager()) != null) {

    startActivity(sendIntent);

}

  1. intent-filter

<activity android:name="ShareActivity">

    <intent-filter>

        <action android:name="android.intent.action.SEND"/>

        <category android:name="android.intent.category.DEFAULT"/>

        <data android:mimeType="text/plain"/>

    </intent-filter>

</activity>

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/157246?site
推荐阅读
相关标签
  

闽ICP备14008679号