1.1.Android简介
1.1.1.Android系统架构

       自下而上:Linux内核层(为硬件提供底层驱动。eg:显示驱动、音频驱动等)、系统运行时层(C/C++库和android运行时库,前者有Sqlite和OpenGL等,后者有ART虚拟机和核心库等)、应用框架层(系统API,譬如ActivityManager、WindowManager、ContentProvider)、应用层(应用程序,譬如联系人、短信、自己开发的app等)。
       2020.3月逐渐推出Android 11版本。5.0使用ART虚拟机代替DVM虚拟机,提出Material Design来优化界面设计,5.0以上占比超过85%。
1.1.2.Android应用开发特色
     (1)四大组件:Activity、Service、BroadcastReceiver、ContentProvider。Activity是应用程序显示的界面;Service后台默默运行,即使用户退出app;BroadcastReceiver使得app接受各处广播消息,也可以向外发出消息;ContentProvider可以使得app之间的数据共享。譬如:读取联系人;
    (2)丰富系统控件:Android界面系统控件和自定义控件。
    (3)SQLite数据库:轻量级、运算速度极快的嵌入式关系型数据库。支持SQL语法和系统API。
    (4)强大多媒体:音乐、视频、录音、拍照等。
1.2.搭建开发环境
       JDK(java运行环境、工具集合、基础类库)+SDK(android开发工具包)+Android studio
1.3.创建Android项目
1.3.1.文件结构解析


1.build:编译自动生成的文件
2.gradle:gradle wrapper配置文件
3..gitignore:哪些文件排除在版本控制之外
4.Build.gradle:项目全局gradle脚本
5.Grale.properties:全局gradle配置文件,配置相关属性
6.gradlew和gradlew.bat:命令行界面执行gradle命令
7.Local.properties:本机SDK路径
8.Setting.gradle:制定项目所有引入的模块,目前只有app模块
9.app目录:项目代码、资源
   9.1.build:系统自动生成文件
   9.2.libs:第三方jar包
   9.3.androiTest:Android test自动化测试用例
   9.4.Java:所有java代码放置地方,MainActivity.java
   9.5.res:图片、布局、字符串等
   9.6.AndroidManifest.xml:项目配置文件,譬如四大组件的定义
   9.7.Test:unit test自动化测试用例
   9.8.Build.gradle:app模块的gradle构建样本,项目构建相关配置
   9.9.Progurad-reles.pro:执行项目混淆规则
10.res目录:图片、布局、字符串等


  10.1.drawable:图片
  10.2.Mipmap:图标(不同后缀更好兼容设备)
  10.3.Vaules:字符串、样式、颜色等。以下为values的内容


     通过R.string.app_name或者@string/app_name获得该字符串的引用。
1.3.2.详解build.gradle文件
     最外层目录的build.gradle

//Gradle是基于Groovy领域特定语言(DSL)来进行项目设置的。
buildscript {ext.kotlin_version = '1.3.71'//闭包声明了两个代码仓库repositories {google() //google扩展依赖库jcenter()//第三方开源库}//使用classpath声明了两个插件dependencies {//Gradle插件的目的是构建android项目,与AS版本一致classpath 'com.android.tools.build:gradle:3.6.3'//Kotlin插件classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"}
}allprojects {repositories {google()jcenter()}
}

     app目录的build.gradle

apply plugin: 'com.android.application'//应用程序模块,也可以设置为库模块
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'//kotlin模块和扩展功能
//项目构建的各个属性
android {compileSdkVersion 28  //指定项目编译版本buildToolsVersion "29.0.3"  //Android10.0SDK编译//项目更多细节配置defaultConfig {applicationId "com.example.myapplication"//应用唯一标识符minSdkVersion 21///项目最低兼容版本,最低兼容5.0targetSdkVersion 28//目标版本,在该版本充分测试,启用新特性,9.0versionCode 1 //项目版本号versionName "1.0"//项目版本名//启用Junit测试用例testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"}//生成安装文件的相关配置buildTypes {//一般一个release包(正式版安装文件配置),一个debug包(测试版安装文件配置)。release {minifyEnabled false//是否对项目混淆proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'//选择混淆规则}}}
//指定项目所有依赖关系。本地依赖(jar包或者目录)、库依赖(项目中的库模块)和远程依赖(jcenter仓库开源项目)。
dependencies {//implementation fileTree本地依赖,libs目录底下的所有jar包  implementation fileTree(dir: 'libs', include: ['*.jar'])//implementation远程依赖声明,标准远程库格式,androidx.appcompat:为域名部分,appcompat为工程名,1.0.2是版本号//Gradle构建时会检查本地是否有库缓存,没有会自动联网下载并添加到项目构建路径implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"implementation 'androidx.appcompat:appcompat:1.0.2'implementation 'androidx.core:core-ktx:1.0.2'implementation 'androidx.constraintlayout:constraintlayout:1.1.3'//implementation project是库依赖,譬如一个库名叫help,可以声明为(implementation project('help'))//声明测试用例库的testImplementation 'junit:junit:4.12'androidTestImplementation 'androidx.test.ext:junit:1.1.1'androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
}

1.4.日志工具
       Android中日志工具类是log。五个级别:log.v(verbose,琐碎的、意义最小的信息)、log.d(debug,调试信息)、log.i(info,重要信息,譬如分析用户数据行为信息)、log.w(warn,警告信息,潜在风险需要修复)、log.e(error,错误信息)。譬如:Log.d("MainActivity1","onCreate Create")。一个tag是传入当前类名,一个msg是打印具体内容。打印内容包括时间、进程号、类名和内容等。Logv可以看所有log信息。Logd可以看debug及以上级别的信息,依次类推。
      System.out.println相较于log,日志开关不可控、没有级别划分、不能添加日志标签。有四个过滤器。Show only selected applications显示当前选中程序的日志;firebase是开发者工具和基础架构平台,不用管。No filter没有过滤器,所有日志都会显示;edit fileter config自定义过滤器。

《第一行代码》第三版之我的第一行Android代码(一)相关推荐

  1. 第一行代码-android-第三版-pdf扫描-思维导图-课件-源码

    第一行代码-android-第三版-pdf扫描-思维导图-课件-源码 一帮公众号各种要你关注, 各种压缩包层层套娃要密码, 还要进群, 真他妈日了gou了,找了半天 分享给大家, 毫无套路! pdf扫 ...

  2. 第一行代码第一章——你的第一行Android代码

    第一行代码第一章-你的第一行Android代码 知识点目录 1.1 了解全貌--Android王国简介 * 1.1.1 Android系统架构 * 1.1.2 Android已发布的版本 * 1.1. ...

  3. 第001天:第一行Android代码

    1.1    了解全貌--Android王国简介 Android从面世以来到现在已经发布了二十几个版本了.在这几年的发展过程中,谷歌为 Android王国建立了一个完整的生态系统.手机厂商.开发者.用 ...

  4. [Android]安装 Android Studio 第一行Android代码

    安装 Android Studio 1.下载 官网 建议官网下载https://developer.android.com/index.html 网盘 链接:https://pan.baidu.com ...

  5. 第一行代码第三版笔记

    第3章 Activity 主acitivity:程序运行起来首先启动的activity manifest <?xml version="1.0" encoding=" ...

  6. 《第一行代码》 第一章:第一行Android代码

    1,Android系统架构 2,开发的四大组件 3,丰富的系统控件 Android 系统为开发者提供了丰富的系统控件,使得我们可以很轻松地编写出漂亮的界面.当然如果你品位比较高,不满足于系统自带的控件 ...

  7. linux脚本第一行是什么,完全搞懂shell脚本第一行:#!/bin/bash的含义

    转自:https://blog.csdn.net/Doris0214/article/details/91453113 shell脚本的第一行一般会写有以下字样: #!/bin/bash 或者 #!/ ...

  8. 第1章:开始启程 - 你的第一行android代码

    1.1 了解全貌--Android王国简介 1.1.1 Android系统架构 Android系统架构分为四层: Linux内核层:Android系统基于Linux内核. 为Android硬件提供底层 ...

  9. 写码如写诗,Android代码规范有多重要?附阿里《Android代码规范指南》PDF

    前言 所谓无规矩不成方圆.任何团队,规范都是怎么也绕不开的话题.特别是在我们编程行业,代码规范乃是团队的重中之重.我们有太多的理由去做规范,同时我们在做规范这件事上也有太多的痛点. 随着团队人数的增加 ...

  10. 第一行代码 (第三版) 第八,九,十章

    一: 泛型和委托 1.泛型 泛型类: class MyClass<T>{ fun method(param: T) : T { return param } } 泛型方法: class M ...

最新文章

  1. 日期格式YYYY-mm-dd HH:MM:SS大小写解释
  2. boost::log::attribute_value用法的测试程序
  3. c++ why can't class template hide its implementation in cpp file?
  4. cesium polygon 悬浮在半空中
  5. 最大值和最小值的差(信息学奥赛一本通-T1112)
  6. IT运维:如何“hold”住网管的幸福
  7. 论文笔记_S2D.74_2021_ICRA_PENet:面向精确和高效的图像引导的深度补全
  8. 我读Code Complete 2 —— 第一章
  9. 如何将国际音标插入到Word中? | 怎么打48个国际音标?
  10. 在线编辑Word——插入内容控件
  11. 基于Proteus学习单片机系列(五)——定时器实现电子表
  12. 2017 年度十大最受欢迎的浏览器,你在用哪一款?
  13. truelicense实现用于JAVA工程license
  14. 神舟GX8的强冷模式,其他神船伙伴也可以试一试
  15. MySQL远程连接的设置
  16. synopsys 工具简介
  17. Winsock套接字开发网络聊天室实例(C/S)模式
  18. 计算机五笔字型编码方法,无字型五笔编码计算机中文输入法
  19. Antivirus Zap Pro 3.9.4.1 推荐的Mac杀毒软件
  20. 在win7上的eclipse向hadoop提交作业异常-权限/设置调度器

热门文章

  1. 查询硬盘序列号(serialNumber),系统安装日期等
  2. 新电脑java开发常用环境安装下载教程收集--持续更新
  3. NMAP 端口扫描工具下载 + 安装
  4. 异星工厂0.16控制台代码
  5. 基于麦克风阵列的语音信号处理技术
  6. python添加环境变量代码_Maya中的PYTHONPATH 环境变量
  7. 操作系统:操作系统装进U盘的图解教程
  8. IE下载xlsx、docx、pptx文件时自动变成zip文件问题
  9. android小米手机变慢,小米手机出现变慢卡顿现象怎么办 教你如何让小米手机跑的更快的方法...
  10. 弱电工程施工规划实施