Android开发基础

介绍

1.安卓开发简介

2.App的运行环境

3.Android四大基本组件

4.Activity生命周期

5.创建新项目

6.Android开发工具

7.Android App中Activity的生命周期

总结


1.安卓开发简介

android开发是指android平台上应用的制作,Android早期由“Android之父”之称的Andy Rubin创办,Google于2005年并购了成立仅22个月的高科技企业Android,展开了短信、手机检索、定位等业务,基于Linux的通用平台进入了开发。
Android是一种基于Linux的自由及开放源代码的操作系统,Android 分为四个层,从高层到低层分别是应用程序层、应用程序框架层、库和运行环境层和Linux 内核层
 

2.App的运行环境

App是在手机上运行的一类应用软件,而应用软件依附于操作系统,无论电脑还是手机,刚开机都会显示桌面,这个桌面便是操作系统的工作台。个人电脑的操作系统主要有微软的Windows和苹果的Mac OS,智能手机流行的操作系统也有两种,分别是安卓手机的Android和苹果手机的iOS。本书讲述的App开发为Android上的应用开发,Android系统基于Linux内核,但不等于Linux系统,故App应用无法在Linux系统上运行。

Android Studio是谷歌官方推出的App开发环境,它提供了三种操作系统的安装包,分别是Windows、Mac和Linux。这就产生一个问题:开发者可以在电脑上安装Android Studio,并使用Android Studio开发App项目,但是编译出来的App在电脑上跑不起来。这种情况真是令人匪夷所思的,通常学习C语言、Java或者Python,都能在电脑的开发环境直接观看程序运行过程,就算是J2EE开发,也能在浏览器通过网页观察程序的运行结果。可是安卓的App应用竟然没法在电脑上直接运行,那该怎样验证App的界面展示及其业务逻辑是否正确呢?

为了提供App开发的功能测试环境,办法是利用Android Studio创建内置的模拟器,然后启动内置模拟器。
 

3.Android四大基本组件

Activity(活动):也称界面程序,在Android的程序当中,Activity 一般代表手机屏幕的一屏。一般一个Android 应用是由多个Activity 组成的。这多个Activity 之间可以进行相互跳转。
Service(服务): 一种长生命周期、没有可视化界面、运行于后台的一种服务程序。
BroadcastReciver(广播接收器):对发送出来的Broadcast进行过滤接受并响应的一类组件。可以使用BroadcastReceiver 来让应用对一个外部的事件做出响应。
ContentProvider(内容提供商):实现应用程序之间共享数据。应用程序通过ContentResolver对象访问ContentProvider中的数据,该对象提供了持久层数据的CRUD方法。

4.Activity生命周期


Activity的生命周期涵盖了从Activity被创建到被销毁的整个过程,包括以下生命周期方法:

onCreate():Activity被创建时调用,用于初始化UI组件及变量。

onStart():Activity开始被用户可见时调用,此时Activity还无法交互。

onResume():Activity可交互时调用,此时Activity在栈顶,用户可与之交互。

onPause():Activity失去焦点时调用,通常会在此方法中保存数据或释放资源。

onStop():Activity被完全覆盖或进入后台时调用,此时Activity不可见。

onRestart():Activity重新回到前台,但不一定会调用onStart()方法。

onDestroy():Activity被销毁时调用,用于释放所有资源及内存。

以上生命周期方法可以根据需要重写,以实现特定的逻辑和功能。在处理生命周期方法时,需要注意遵守生命周期的规范,以确保应用程序的正常运行。
 

5.创建新项目

  1. 打开软件Android Studio

  2. 如果您已打开一个项目,请依次选择 File > New > New Projec

  3. 在“Create New Project”向导中,输入应用程序的名称,选择所需的项目位置并选择所需的语言(Java或Kotlin)

  4. 选择所需的最低API级别,并选择空活动模板或其他模板。

  5. 为您的应用程序选择所需的想要的功能和库

  6. 配置设备和设置应用程序的图标和名称

  7. 单击“Finish”按钮,完成新项目的创建

    完成以上步骤后,您将获得一个新的Android Studio项目,其中包含您选择的活动模板和其他库和功

6.Android开发工具

基于IntelliJ IDEA的Android Studio+SDK+JDK+Genymotion
Android Studio 是基于 IntelliJ IDEA 且适用于开发 Android 应用的官方集成开发环境 (IDE),内部集成了SDK(提供Android要使用的API)等,方便开发。通常情况下,在正常安装JDK(用于处理java代码)后,继续安装 Android Studio后,便可直接使用了。

7.Android App中Activity的生命周期

Android App中Activity的生命周期

Android 生命周期的状态:

1.OnCreate:首次创建活动时调用。
2.OnStart:当活动对用户可见时调用。
3.OnResume:当 Activity 开始与用户交互时调用。
4.OnPause:当活动对用户不可见时调用。
5.OnStop:当活动不再可见时调用。
6.OnRestart:当活动停止并重新启动时调用。
7.OnDestroy:当要关闭或销毁活动时调用它。

代码展示

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:padding="5dp">

    <!-- 注意翻页视图ViewPager的节点名称要填全路径 -->
    <androidx.viewpager.widget.ViewPager
        android:id="@+id/vp_content"
        android:layout_width="match_parent"
        android:layout_height="400dp">

        <!-- 注意翻页标签栏PagerTabStrip的节点名称要填全路径 -->
        <androidx.viewpager.widget.PagerTabStrip
            android:id="@+id/pts_tab"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />
    </androidx.viewpager.widget.ViewPager>

</LinearLayout>

package com.example.myapplication;


import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.view.ViewGroup.LayoutParams;
import android.widget.ImageView;

import androidx.viewpager.widget.PagerAdapter;

import java.util.ArrayList;
import java.util.List;

public class  ImagePagerAdapater extends PagerAdapter
{
    // 声明一个图像视图列表
    private List<ImageView> mViewList = new ArrayList<ImageView>();

    // 声明一个商品信息列表
    private List<GoodsInfo> mGoodsList = new ArrayList<GoodsInfo>();

    // 图像翻页适配器的构造方法,传入上下文与商品信息列表
    public ImagePagerAdapater(Context context, List<GoodsInfo> goodsList)
    {
        mGoodsList = goodsList;

        // 给每个商品分配一个专用的图像视图
        for (int i = 0; i < mGoodsList.size(); i++)
        {
            ImageView view = new ImageView(context); // 创建一个图像视图对象
            view.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT));
            view.setImageResource(mGoodsList.get(i).pic);
            mViewList.add(view); // 把该商品的图像视图添加到图像视图列表
        }
    }

    // 获取页面项的个数
    public int getCount()
    {
        return mViewList.size();
    }

    // 判断当前视图是否来自指定对象
    public boolean isViewFromObject(View view, Object object)
    {
        return view == object;
    }

    // 从容器中销毁指定位置的页面
    public void destroyItem(ViewGroup container, int position, Object object)
    {
        container.removeView(mViewList.get(position));
    }

    // 实例化指定位置的页面,并将其添加到容器中
    public Object instantiateItem(ViewGroup container, int position)
    {
        container.addView(mViewList.get(position));
        return mViewList.get(position);
    }

    // 获得指定页面的标题文本
    public CharSequence getPageTitle(int position)
    {
        return mGoodsList.get(position).name;
    }

}

总结

手机App能够直接操作内置的SQLite数据库,但不能直接操作MySQL这种企业数据库。必须事先搭建好服务端程序(如Java Web),然后客户端与服务端通过HTTP接口通信,再由服务端操作以MySQL为代表的数据库服务器。