1、Android概述

2019-07-13 03:20发布

Android概述

    Android系统的体系结构:

        应用程序层:各种应用程序

        应用程序框架:即API框架。可用作程序开发,也是软件复用的重要手段。

        函数库:由应用程序框架层来调用该函数库。

            系统c库:一个从BSD系统(unix的衍生系统)派生出来的标准C系统库,并且专门为嵌入式Linux设备调整过

            媒体库:基于PacketVideo的OpenCore,支持播放和录制音频和视频

            Surface Manager:管理对显示子系统的访问,并可以对多个应用层序的2D和3D图层提供无缝整合

            LibWebCore:Web浏览器引擎

            SGL:底层的2D图形引擎

            3D libraries:基于OpenGL ES API实现的3D系统。可硬件加速,也可软件优化加速

            Free Type:位图和向量字体显示

            SQLite:轻量级关系数据库

        Android运行时:

            Android核心库:提供java语言核心库所能使用的绝大部分功能

            ART:虚拟机:

                    JIT(Just-in-time):动态编译执行,一边编译一边执行

                    ART(Ahead-of-time):预编译,在安装app时进行预编译,提高app运行效率。支持ARM、x86、MIPS架构

        Linux内核:

            提供了安全性、内存管理、进程管理、网络协议栈、驱动模型。是硬件和软件栈之间的抽象层。

    AndroidStudio下载地址:

        developer.android.com/sdk/index.html

    Android_SDK:

        add-ons:存放第三方公司为Android平台开发的附加功能

        platforms:存放不同版本的Android系统

        tools:Android开发、调试的工具

        docs:Android开发文件和API文档

        platform-tools:存放Android平台相关的工具

        samples:存放不同Android平台的示例程序

        system-images:不同Android--->cpu架构提供的系统镜像

    使用真机调试需打开:

        保持唤醒、USB调试、允许模拟位置

    使用monitor(监听器)进行调试:monitor.bat

    Android Debug Bridge(ADB):

        查看当前运行的模拟器:adb devices

        D盘下的adc.txt--->手机的/sdcard/:adb push d:abc.txt /sdcard/

        手机的/sdcard/的abc.txt---->D:根目录:adb pull /sdcard/abc.txt D:

        启动模拟器的shell窗口:adb shell

        安装、卸载APK程序:安装:adb install [-r] [-s]   安装(APK包) [-r]重新安装 [-s]安装到SD卡 默认安装到内部存储器

                            卸载:adb uninstall [-k]   删除(APK包) [-k]只删除应用程序,保留数据和缓存目录

    使用mksdcard创建虚拟sdcard:

        eg: mksdcard 64M D:sdcard.img  在D盘创建一个大小为64M的虚拟SD卡镜像

    在启动模拟器时使用指定的虚拟SD卡:

        emulator -avd peng -sdcard f:sdcard.img

    AndroidStudio项目目录:

        build:AndroidStudio自动生成的各种源文件

        libs:存储Android项目所需的第三方JAR包

        src:源文件、资源文件、AndroidMenifest.xml

    AAPT(Android Asset Packing Tools):

        用于创建R.java资源文件:

            每一类资源都对应于R类的一个内部类

            每一个具体的资源项都对应于内部类的一个public static final int类型的Field

    应用程序权限说明:

        声明运行该应用本身所需要的权限:

            eg:声明需要打电话的权限,在里面添加代码

                

        声明调用该应用所需要的权限:

            eg:在里面添加代码

    setContentView():

        可接受View对象作为参数、也可以接受一个布局管理资源的ID作为参数

    Activity:有多个Activity将组成Activity栈,当前活动的Activity位于栈顶。可通过setTheme(int resid)方法来设置窗口风格

        实际上是Window的容器,Activity包含一个getWindow()方法,该方法返回该Activity所包含的窗口。

    签名Android应用程序:

        如果在同一台手机上安装两个包名相同的应用,后面安装的应用就要覆盖前面的应用

        签名的作用:

            1、确定发布者的身份:由于应用开发者可以通过使用相同的包名来替换已经安装的程序,签名可以避免这种情况发生

            2、确保应用的完整性:签名会对应用包中的每个文件进行处理确保程序中的文件不会被替换