Android学习笔记1

Android是一种基于Linux的自由及开发源代码的操作系统。由Google公司开发并开源,07年完成了经过改良的Android系统并开源,08年10月第一部Android手机发布,11年第一季度Android市场份额全球第一此后蓬勃发展。

Android系统API对应的版本及名称

API等级1:Android 1.0
API等级2:Android 1.1 Petit Four 花色小蛋糕
API等级3:Android 1.5 Cupcake 纸杯蛋糕
API等级4:Android 1.6 Donut 甜甜圈
API等级5:Android 2.0 Éclair 闪电泡芙
API等级6:Android 2.0.1 Éclair
API等级7:Android 2.1 Éclair
API等级8:Android 2.2 - 2.2.3 Froyo 冻酸奶
API等级9:Android 2.3 - 2.3.2 Gingerbread 姜饼
API等级10:Android 2.3.3-2.3.7 Gingerbread
API等级11:Android 3.0 Honeycomb 蜂巢
API等级12:Android 3.1 Honeycomb
API等级13:Android 3.2 Honeycomb
API等级14:Android 4.0 - 4.0.2 Ice Cream Sandwich 冰淇淋三明治
API等级15:Android 4.0.3 - 4.0.4 Ice Cream Sandwich
API等级16:Android 4.1 Jelly Bean 果冻豆
API等级17:Android 4.2 Jelly Bean
API等级18:Android 4.3 Jelly Bean
API等级19:Android 4.4 KitKat 奇巧巧克力棒
API等级20:Android 4.4W
API等级21:Android 5.0 Lollipop 棒棒糖
API等级22:Android 5.1 Lollipop
API等级23:Android 6.0 Marshmallow 棉花糖
API等级24:Android 7.0 Nougat 牛轧糖

Android IDE

  • Android Studio

13年Google在I/O大会上发布的新的Android开发环境,是基于IDEA基础上的Android开发支出,相比于传统的IDE拥有更优越的调试性能,强大的代码搜索和提示,强大的UI编辑器,整合了Gradle构建工具让配置打包编译更简单等等。目前AS拥有稳定的版本,是学习开发Android程序的第一选择。

  • Eclipse

老牌的编译器很多旧的项目都是用它开发,相对于AS还是后者对Android开发者更加友好,旧项目迁移到AS也不难,所以建议使用AS进行开发。

adb端口被占用处理

adb的全称为Android Debug Bridge,就是起到调试桥的作用,通过adb我们可以在Android Studio中方便通过DDMS来调试Android程序,用来连接模拟器或者手机,adb在AS中默认的端口是5037。
DDMS的全称是Dalvik Debug Monitor Service,是 Android 开发环境中的Dalvik虚拟机调试监控服务。

  • 一般端口被占用基本是各种手机助手把adb的端口占用了,导致无法连接手机可以先调试。如果你知道是哪个程序的进程名称,你可以直接去任务管理器关闭,然后重启AS即可。
  • 第二种情况是你不知道哪个进程占用了端口,可以按以下步骤解决:
    1.win+R运行中输入cmd打开命令控制台。
    2.在控制台输入netstat -ano|findstr "5037"回车,返回占用端口5037的程序列表,其中有一个pid号
    3.输入taskkill /PID 2876 /F强制关闭占用5037端口的进程,如果有多个进程就多执行一次即可,最后重启AS就可以重新连接了


    image.png
image.png

Android Studio 工程目录结构

Android学习笔记1_第1张图片
image.png
  • .gradle 是gradle运行后生成的缓存文件夹
  • .idea AS工程的环境配置
  • app 程序module的根文件夹,里面包含module代码、资源、布局文件等。
  • app/build module代码编译后存放的位置
  • app/libs 依赖库的所在位置
  • app/src 源代码所在目录
  • app/src/androidTest
  • app/stc/main 代码的某个模块
  • app/src/test 测试代码目录
  • app/.gitignore git忽略清单文件
  • app/app.iml 文件为Android Studio/ Intellij IDEA为每一个module生成的配置文件
    模块的配置如编译文件夹路径,使用jdk版本等。
  • app/build.gradle 所在module的依赖配置
  • app/proguard-rules.pro
  • build 文件夹为编译缓存文件
  • gradle 这是gradle的jar包及配置gradle版本
  • .gitignore git忽略文件清楚
  • build.gradle 全局构建配置后面要经常跟这个文件打交道
  • gradle.properties 为gradle的参数配置
  • gradlew 文件夹中包含的是gradle-wrapper.jar文件,通过配置其中的
    gradle-wrapper.properties中的distributionUrl 可以给你的项目指定需要使用
    的gradle版本
  • gradlew.bat 构建时在window下的运行脚本
  • HelloWorld.iml 文件为Android Studio/ Intellij IDEA为Project生成的配置文件
    模块的配置如编译文件夹路径,使用jdk版本等。
  • local.properties 本地工程的配置信息
  • settings.gradle 文件中可指定project目录中的任何一个文件夹为gradle的module,
    比如一般默认的指定为include ':app'

JRE和JDK的区别

DK,开发java程序用的开发包,JDK里面有java的运行环境(JRE),包括client和server端的。需要配置环境变量
JRE,运行java程序的环境,JVM,JRE里面只有client运行环境,安装过程中,会自动添加PATH。

Android SDK、NDK、JNI

Android学习笔记1_第2张图片
image.png

SDK

Android Software Development Kit, 即Android软件开发工具包可以说只要你使用java去开发Android这个东西就必须用到。它包含了SDK Manager 和 AVD Manage

NDK

NDK全称:Native Development Kit,它提供了一系列的工具,帮助开发者快速开发C(或C++)的动态库,并能自动将so和java应用一起打包成apk。

JNI

Java Native Interface (JNI)标准是java平台的一部分,它允许Java代码和其他语言写的代码进行交互。JNI是java语言提供的Java和C/C++相互沟通的机制,Java可以通过JNI调用本地的C/C++代码,本地的C/C++的代码也可以调用java代码。JNI 是本地编程接口,Java和C/C++互相通过的接口。Java通过C/C++使用本地的代码的一个关键性原因在于C/C++代码的高效性。

so文件

即使第三方应用开发者使用JNI完成了自己的C动态链接库(so)开发NDK编译C/C++源代码文件生成动态链接库so

Gradle

Gradle是Android Studio中默认的构建系统。Gradle 采用了 Groovy 语言作为主要的脚本语言。我们app项目的 build.gradle 和APP Moudle里的build.gradle文件,就是一个 Groovy 类。more

你可能感兴趣的:(Android学习笔记1)