Android系统及客户端概览|青训营笔记

110 阅读3分钟

这是我参与「第四届青训营 」笔记创作活动的第1天

一、本堂课重点内容:

  • 对于移动互联网的认识
  • App开发团队内部的精简结构
  • 客户端开发面对的角色
  • Android系统架构
  • APK构成
  • Android开发工具

二、详细知识点介绍:

1、对于移动互联网的认识

在移动互联网的世界中有几个角色:人、手机、客户端开发人员、产品经理、世界。

  • 人们通过手机去了解世界
  • 产品经理根据人们的需求和世界的信息形成需求
  • 由客户端开发人员根据产品经理提供的需求进行App的开发
  • 提供信息的是App,手机是App的载体

2、App开发团队内部的精简结构

App开发团队中的角色:产品经理、客户端开发、服务端开发、质量保证人员

  • 产品经理负责提供需求和设计
  • 服务端向客户端提供数据和内容
  • 客户端进行功能和交互的实现,以及对服务端所提供数据和内容的呈现
  • 在客户端和服务端的开发完成后,汇总为一个安装包,由质量保证人员进行测试,最后在保证质量的情况下交付给用户

3、客户端开发面对的角色

  • 对外(用户):创造用户价值

    第一层:页面+逻辑+数据

    第二层:多样性需求

    第三层:体验+质量+安全+个性化

  • 对内(公司):节约成本

    第一层:单人效率

    第二层:团队和公司效能

  • 对自身(个人):打造技术品牌

    第一层:基本技能

    第二层:打造技术高度

    第三层:综合素质

4、Android系统架构

Android系统大致可分为五层,从高到低分别是应用层、应用框架层、系统运行库层、硬件抽象层、Linux内核层。

  • 应用层

    所有安装在手机上的应用程序都属于这一层,比如系统自带的联系人、短信等程序,自己开发的App等等。

  • 应用框架层

    这一层主要提供了构建应用程序时可能用到的接口,我们可以使用这些接口来构建自己的App。

  • 系统运行库层

    • C/C++库,它为Android系统提供了主要特性。如SQLite库提供了数据库的支持,OpenGL|ES提供了3D绘图的支持,Webkit库提供了浏览器内核的支持等。
    • Android运行时库,它主要提供了一些核心库,允许开发者使用Java语言来编写Android应用。
  • 硬件抽象层

    主要提供硬件组件的封装,包括相机、传感器和蓝牙等。当框架API要求访问设备硬件时,Android系统将为该硬件组件加载库模块。

  • Linux内核层

    Android系统是基于Linux内核的,这一层为Android设备的各种硬件提供了底层的驱动,如显示驱动、音频驱动、照相机驱动、蓝牙驱动、Wi-Fi驱动、电源管理等。

5、APK构成

image-20220727120641201.png

  • AndroidMainfest.xml:声明app中的四大组件(Activity、Service、BroadcastReceiver和ContentProvider),以及权限等

    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="cn.edu.jssvc.wangyu.mysmartcity">
        <uses-permission android:name="android.permission.INTERNET"/>
        <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
    ​
        <application
            android:name="org.litepal.LitePalApplication"
            android:usesCleartextTraffic="true"
            android:allowBackup="true"
            android:icon="@mipmap/ic_launcher"
            android:label="@string/app_name"
            android:roundIcon="@mipmap/ic_launcher_round"
            android:supportsRtl="true"
            android:theme="@style/Theme.MySmartCity">
            <activity android:name=".News_search"></activity>
            <activity android:name=".ParkLot_Details" />
            <activity android:name=".Register" />
            <activity android:name=".Login" />
            <activity android:name=".ParkLot" />
            <activity android:name=".MainMenu" />
            <activity android:name=".Guide" />
            <activity android:name=".MainActivity">
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />
    ​
                    <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>
            </activity>
        </application>
    ​
    </manifest>
    
  • classes.dex:所有编写的java、kotlin等代码

  • res文件夹:资源文件夹,包括图片、颜色、字符串以及搭建的XML布局文件

  • lib文件夹:主要存放C/C++代码编译成的so文件

  • META-INF文件夹:存放签名和证书,用于校验和安全

6、Android开发工具

Android开发的IDE是AndroidStudio,可在Android开发者平台进行下载。

image-20220727114914831.png

三、总结

在进行本次课程的学习前有一定的Android基础,能够参加这次字节跳动的青训营也很开心,希望能够更好的提升自己,加油!