《第一行代码》笔记——第1章 开始启程—你的第一行Android代码

《第一行代码》Android (第3版)笔记 右击com.example.activitytest包——>New——>Activity——>Empty Activity,新建一个SecondActivity,勾选Generate Layout File,布局文件命名为second_layout,不勾选Launcher Activity选项。当一个函数只有一行代码时,可以直接将这一 行代码使用等号串连在函数定义的尾部。当一个函数中只有一行代码时,Kotlin允许我们不必编写函数体,可以直接将唯一的一行代码写在函数定义的尾部,中间用等号连接即可。 阅读详情

第1章 开始启程——你的第一行Android代码


  《第一行代码》的第一章,讲解内容主要包括:Android简介(发展历史、系统架构)、Android Studio的简单用法、Android项目结构的分析、Log的使用等。下面仅对我个人的知识掌握情况做相关记录。


Android系统架构

Android大致分为四层架构:Linux内核层、系统运行库层、应用框架层和应用层。

  • Linux内核层:Android系统是基于Linux内核的,这一层为Android设备的各个硬件提供了底层的驱动,如显示驱动、音频驱动、照相机驱动、蓝牙驱动、Wi-Fi驱动、电源管理等。
  • 系统运行库层:这一层通过一些C/C++库来为Android系统提供了主要的特性支持。如SQLite库提供了数据库的支持,OpenGL|ES库提供了3D绘图的支持,WebKit库提供了浏览器内核的支持。这一层还有Android运行时库,它主要包括了一些核心库,能够允许开发者使用Java语言来编写Android应用。另外,Android运行时库中还包含了Dalvik虚拟机(5.0系统之后改为ART运行环境),它使得每一个Android应用都能运行在独立的进程当中,并且拥有一个自己的Dalvik虚拟机实例。相较于Java虚拟机,Dalvik是专门为移动设备定制的,它针对于手机内存、CPU性能有限等情况做了优化处理。
  • 应用框架层:这一层主要提供了构建应用程序时可能用到的各种API,Android自带的一些核心应用就是使用这些API完成的,开发者也可以通过使用这些API来构建自己的应用程序的。
  • 应用层:所有安装在手机的应用程序都是属于这一层的,比如系统自带的联系人,短信等程序,包括自己开发的程序。
    Android系统架构,图片源自维基百科

Android版本

版本号系统代号API市场占有率
2.2Froyo80.1%
2.3.3~2.3.7Gingerbread101.5%
4.0.3~4.0.4Ice Cream Sandwich151.3%
4.1.x
4.2.x
4.3

Jelly Bean
16
17
18
5.6%
7.7%
2.3%
4.4KitKat1927.7%
5.0
5.1
Lollipop21
22
13.1%
21.9%
6.0Marshmallow2318.7%
7.0Nougat240.1%

查看最新的数据可以访问http://developer.android.google.cn/about/dashboards/
从上表中可以看出,目前4.0以上的系统占据了超过98%的Android市场份额。

分析项目结构

project项目结构模式下:

外侧目录:
- app:项目中的代码、资源等内容几乎都是放在这个目录下。
- gradle: 这个目录下包含gradle wrapper的配置文件,使用gradle wrapper的方式不需要提前将gradle下载好,而是会自动根据本地的缓存情况决定是否需要联网下载gradle。
- .gitignore:这个文件是用来将指定的目录或文件排除在版本控制之外的。
- build.gradle:这是项目全局的gradle构建脚本(构建gradle用的?)。
- gradle.properties:这个文件是全局的gradle配置文件,在这里配置的属性将会影响到项目中所有的gradle编译脚本。
- gradlew和gradlew.bat:这两个文件是用来在命令行界面中执行gradle命令的。gradlew是在Linux和Mac系统中使用的,gradlew.bat是在Windows系统中使用的。
- local.properties:这个文件用于指定本机中的Android SDK路径。
- setting.gradle:这个文件用于指定项目中所有引入的模块。

app目录下:
- build:这个目录和外层的build目录类似,主要也是包括了一些在编译时自动生成的文件。
- libs:第三方jar包存放的目录,放在这个目录下的jar包都会被自动添加到构建路径里去。
- androidTest:此处是用来编写Android Test测试用例的,可以对项目进行一些自动化测试。
- java:放置所有Java代码的目录
- res:各类资源存放的目录
- AndroidManifest.xml:整个Android项目的配置文件,程序中定义的所有四大组件需要在这个文件里注册,还可以在这个文件中给应用程序添加权限声明。
- .gitignore:这个文件用于将app模块内的指定的目录和文件排除在版本控制之外。
- build.gradle:这是app模块的gradle构建脚本(构建Gradle用的?),这个文件中会指定很多项目构建相关的配置。
- proguard-rules.pro:这个文件用于指定项目代码的混淆规则。


详解build.gradle文件

Android Studio是采用Gradle来构建项目的。Gradle是一个非常先进的项目构建工具,它使用了一种基于Groovy的领域特定语言(DSL)来声明项目设置。

外层目录下的build.gradle文件:

buildscript{
    repositories{
        jcenter() 
    }
    dependencies{
        classpath 'com.android.tools.build:gradle:2.2.0'
    }
}
allprojects {
    repositories {
        jcenter()
}
  • jcenter是一个代码托管仓库,很多Android开源项目都会选择将代码托管到jcenter上,声明了这行配置之后,我们就可以在项目中轻松引用任何jcenter上的开源项目了。
  • dependencies闭包中使用classpath声明了一个Gradle插件。Gradle并不是专门为构建Android项目,则需要声明com.android.tools.build:gradle:2.2.0这个插件。

app目录下的build.gradle文件:

apply plugin:'com.android.application'  
//应用了一个插件,有两种值可选:com.android.application表示这是一个应用程序模块,com.android.library表示这是一个库模块。
android{
    compileSdkVersion 24   //项目的编译版本,这里24表示使用Android 7.0系统的SDK编译
    buildToolsVersion "24.0.2" //指定项目构建工具的版本
    defaultConfig{
        applicationId "com.example.helloworld" //指定项目的包名
        minSdkVersion 15   //指定项目最低兼容的Android系统版本,这里最低兼容到Android 4.0系统
        targetSdkVersion 24   //指定的值表示你在该目标版本上已经做过充分的测试,系统将会为你的应用程序启动一些最新的功能和特性。如果23或更高,那么系统会为你的程序启动运行时权限功能。
        versionCode 1 //指定项目的版本号
        versionName "1.0" //指定项目的版本名
    }
    //buildTypes闭包中用于指定生成安装文件的相关配置,通常有两个自闭包debug/release
    buildTypes{ 
        release{ //release闭包用于指定生成正式版安装文件的配置,debug为测试版
            miniflyEnabled false //指定是否对项目的代码进行混淆
            proguardFiles getDefaultProguardFilse('proguard-android.txt'),'proguard-rules.pro'//指定混淆时使用的规则文件,第一个在Android SDK目录下,第二个是当前项目的根目录下的
            //注:Android Studio直接运行项目生成的都是测试版安装文件
        }
    }
}
//dependencies闭包指定当前项目所有的依赖关系。
//依赖方式:本地依赖、库依赖和远程依赖
//本地依赖:可以对本地的Jar包或目录添加依赖关系
//库依赖:可以对项目中的库模块添加依赖关系 基本格式:compile project(':helper')
//远程依赖:可以对jcenter库上的开源项目添加依赖关系
dependencies{
    compile fileTree(dir: 'libs',include: ['*.jar']) //本地依赖,表示将libs目录下的所有.jar后缀的文件都添加到项目的构建路径当中
    compile 'com.android.support:appcompat-v7:24.2.1'
    //远程依赖声明,其中com.android.support是域名部分,用于和其他公司的库作区分;
    //appcompat-v7是组名称,用于和同一公司中不同的库做区分;24.2.1是版本号,用于和同一个库的不同版本做区分
    testCompile 'junit:junit:4.12'  //用于声明测试用例库
}

使用日志工具Log

  • 在onCreate()方法的外面输入logt,然后按下Tab键,这是就会以当前类名作为值自动生成一个TAG常量。

碎片整理:

  • AppCompatActivity:这是一种向下兼容的Activity,可以将在各个系统版本中增加的特性和功能最低兼容到Android2.1系统

小结

  通过第一章的学习,在原有的基础上,让我对Android系统架构、项目结构(build.gradle等)和Log的使用更加深入的了解,还要继续努力,有很多细节的知识需要掌握。下面的章节会随着学习持续更新。。。

第一行代码 android学习笔记 完整版 第一行代码 android学习笔记 修改完整版 立即下载

相关推荐

Android_study:《第一行代码》原始码,安卓项目等等

Android_study 《第一行代码》

第一行代码笔记⑤

/

qq_40896190的博客 191

QCustomPlot实战:从入门到精通的数据可视化

本文详细介绍了如何使用QCustomPlot进行数据可视化,从基础环境搭建到高级图表定制,涵盖实时监控、多坐标系联动等实战技巧。基于Qt的QCustomPlot库以其强大的绘图能力和灵活的API,帮助开发者快速实现专业级数据可视化效果。

weixin_29003437的博客 115

《Android第一行代码》学习笔记

在进行社招面试准备的间隙,学习了《第一行代码》,对于其中比较通用且重要的知识点予以记录。

qq_43357394的博客 2068

ESP32实战:破解校园网WPA2-Enterprise认证的完整指南

本文详细介绍了如何使用ESP32开发板破解校园网WPA2-Enterprise认证的完整指南。通过硬件准备、环境搭建、核心代码实现及常见问题排查,帮助开发者解决企业级WiFi连接难题,特别适用于校园网环境下的物联网设备开发。

weixin_29194817的博客 457

机场数据治理系列介绍(1):机场行业数据中台中的数据管理顶层设计方案

民航机场行业的数据中台中,有关数据管理顶层设计方案需要结合机场行业的业务特点和技术需求进行具体的设计,今日我们简要考量设计提供一个参考方案:

机场信息系统研究员的专栏 1604

Android 第一行代码(第二版)学习

android第一行笔记

Redamancylove的博客 1174

HBM PHY 架构解析:从主控模块到DWORD设计的深度探索

本文深入解析了HBM PHY的完整架构,从作为系统大脑的PUB主控模块出发,详细阐述了其CSR控制、初始化与训练引擎的核心功能。进而剖析了负责命令传输的AWORDX2模块与作为数据高速公路的DWORD模块的设计奥秘,包括其双向数据流、精密时钟对齐与延迟线校准机制。最后,探讨了顶层MASTER PHY的整合作用及从DFI到DRAM的完整数据通路,为理解这一高性能内存接口的关键物理层设计提供了全面视角。

weixin_29306011的博客 295

android第一行代码笔记

上述引入布局的技巧解决了编写布局代码问题,但是如果布局中有一些控件要求你能够响应时间,还是需要在每个活动中为这些控件单独编写一次事件注册的代码,而比如说标题栏中的返回按钮,功能都是相同的即为销毁当前活动,此时在每一个活动中都要重新注册一遍点击事件显然麻烦,这时最好使用自定义控件的方式来解决。新建TitleLayout继承自LinearLayout,成为自定义的标题栏控件。

Redamancylove的博客 872

Keil MDK 5.37及之后版本 安装AC5(ARMCC)编译器详细步骤

由于Keil 5.37及之后版本不再默认安装AC5(ARMCC)编译器,这就会导致由AC5编译的工程无法正常编译,往往输出窗口会提示以下信息:*** Target ‘STM32xxxx‘ uses ARM-Compiler ‘Default Compiler Version 5‘ which is not available.

s_Modesto的博客 1万+

基于STM32L4XX、HAL库的ICM-42607-P姿态传感器驱动程序设计

/ 转换为dps(±1000dps量程)float accel_x = sensor_data.accel_x * (8.0f / 32768.0f);// 转换为g值(±8g量程)#define ICM42607_I2C_ADDR 0x68 << 1 // I2C地址(SA0=0)= 0x40) { // ICM-42607的WHO_AM_I值为0x40。// 读取传感器数据。

zhusl6688的博客 835

Android第一行代码实操

Android第一行代码实操 涉及到需要更新或者更换的方法

Hdrosay的博客 3682

【C语言学习疑难杂症】第20期:0x00007FF7F2821964处引发的异常0xC0000005写入位置 0x0000000000000

检查代码中是否存在野指针访问的情况,确保在进行写入操作之前,内存已经被正确分配或初始化,并且在使用完毕后进行了正确的释放。空指针访问:代码尝试在空指针地址(0x0000000000000000)处进行写入操作,导致访问冲突。检查代码中是否存在数组越界的情况,确保在进行写入操作之前,数组的索引值在合法范围内。检查代码中是否存在空指针访问的情况,确保在进行写入操作之前,指针已经被正确初始化。野指针访问:代码尝试在已释放或未初始化的内存地址进行写入操作,导致访问冲突。

学无止境 828

《第一行代码》学习笔记——第1章 开始启程,你的第一行Android代码

1.3 创建你的第一个Android项目 1.3.1 创建HelloWorld项目 1、Application Name代表应用名称,手机上显示的就是它; 2、Project Name代表项目名称,其显示在Eclipse中; 3、Minimum Required SDK是指程序最低兼容版本,Compile With是指程序编译版本; 1.3.3 分析你的第一个And...

aaa274125723的博客 236

微信文件自动归档!手把手教你用OpenClaw搭个自己的“数字员工”,告别重复劳动

很多人说“AI是未来”,但未来不是靠喊口号的。OpenClaw的真正价值,是让你把重复劳动交出去,把时间留给真正需要创造力的事。这事真能干,而且不难。下载OpenClaw(GitHub仓库按我写的步骤跑一遍遇到坑,评论区留言——我亲自帮你看作者后记:上周五,我让AI自动归档了文件后,终于在5点准时下班。回家路上,我给它发了条消息:“干得漂亮”。它没回,但我知道——它在默默等我的下一条指令。

2601_94871597的博客 414

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

阅读郭林《第一行代码》的笔记——第1章 开始启程,你的第一行Android代码

一、Android系统架构 Android大致可以分为四层架构,五块区域。 1.Linux内核层 Android系统是基于Linux 2.6内核的,这一层为Android设备的各种硬件提供了底层的驱动,如显示驱动、音频驱动、照相机驱动、蓝牙驱动、Wi-Fi驱动、电源管理等。 2.系统运行库层 这一层通过一些C/C++库来为Android系统提供了主要的特性支持。如SQLite库提供了

持续学习,刻意练习 3740

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

android回复在一行_《第一行代码》学习笔记——第1章 开始启程,你的第一行Android代码...

1.3 创建你的第一个Android项目1.3.1 创建HelloWorld项目1、Application Name代表应用名称,手机上显示的就是它;2、Project Name代表项目名称,其显示在Eclipse中;3、Minimum Required SDK是指程序最低兼容版本,Compile With是指程序编译版本;1.3.3 分析你的第一个Android程序1、src 是放置我们所有Ja...

weixin_29859471的博客 192

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

第1章开始启程——你的第一行Android代码

第1章开始启程——你的第一行Android代码1.1.1Android系统架构1.1.2Android发布版本1.1.3Android应用开发特色1.3.1创建你的第一个Android项目1.3.2启动模拟器1.3.3运行HelloWorld1.3.4分析你的第一个Android 程序app详解1.4.1使用Android的日志工具Log1.4.2过滤器**小提示**第一章总结 1.1.1Android系统架构 Android大致可以分为四层架构:Linux内核层、系统运行库层、应用框架层和应用层。 1、

Fzw1211的博客 3479

《第一行代码Android》笔记

第1章 开始启程,你的第一行Android代码1.1 了解全貌,Android王国简介 Android系统是基于Linux 2.6内核的,这一层为Android设备的各种硬件提供了底层的驱动,如显示驱动、音频驱动、照相机驱动、蓝牙驱动、Wi-Fi驱动、电源管理等。 另外Android运行时库还包含了Dalvik虚拟机,它使得每一个Android应用都能运行在独立的进程当中,并且拥有一个自己的Dalv

陀思妥耶夫斯基和海德格尔伴我勇敢存在 4313

第1章 开始启程,你的第一行Android代码

搭建 Android 开发环境是迈向移动应用开发的第一步。作为 Google 官方推荐的集成开发环境(IDE),Android Studio 集成了代码编辑、构建、调试、性能分析与设备模拟等全套工具链。本文将手把手带你完成从下载 → 安装 → SDK 配置 → 项目创建 → 虚拟机运行的完整流程,并针对国内网络环境提供高效解决方案。

欢迎大家一起讨论交流 1083

基于《第一行代码》的Android开发学习方案

1. 说明 此学习方案基于《第一行代码》,目的是指导大家系统的便捷的入门Android开发,所以书中部分知识点没有做要求,其实没必要全部学完了再去做开发,可以学一部分,然后实践中继续学习。首先介绍《第一行代码》,作者是郭霖,这本书在发行第一版后,短短两年内,就成了国内最畅销的Android技术书,很适合初学者入门。现在本书最新版本为二,基于Android7.0系统写作,书中使用的Android...

wodemaoheise的博客 379

第一章 开始启程——你的第一行Android代码

Android从面世以来到现在已经发布了二十几个版本了。谷歌为Android王国建立了一个完整的生态系统。手机厂商、开发者、用户之间相互依存,共同推进着Android的蓬勃发展。

Roderick888888的博客 1448

[《第一行Android代码》读书笔记]第1章 开始启程——你的第一行Android代码

第1章 开始启程——你的第一行Android代码 1.1 Android系统四层架构:(从底至顶) Linux内核层:为Android设备的各种硬件提供底层驱动,如显示驱动、音频驱动、照相机驱动等 系统运行库层: 通过一些C/C++库为Android系统提供主要的特性支持,如SQLite库提供了数据库的支持 Android运行时库,主要提供了一些核心库,开发者可以使用Java语言编写程序...

weixin_41297079的博客 338

[Android][第一行代码][第 1 章 开始启程]

Android 简史 Android 系统架构 Android 应用开发特色 项目目录结构 详解 buildgradle 文件 小结 01. Android 简史 2003年10月,Andy Rubin 等人创办 Android 公司。 2005年08月,谷歌收购该公司,Andy Rubin 继续负责。 2008年09月,推出了 Android 系统的第一个版本。 2011年02月,谷歌发布了 An

u014407088的专栏 320

第 1 章 开始启程,你的第一行Android代码

android:name="android.intent.action.MAIN"/> 和表示MainActivity是这个。Android项目,则需要声明com.android.tools.build:gradle:3.5.2这个插件。继承它或者它的子类才能拥有Activity的特性(AppCompatActivity是Activity的子类)。Gradle是一个非常先进的项目。

zjgwh的博客 585
上一篇: 第一篇博客——从《第一行代码》学习笔记开始
下一篇: 《第一行代码》笔记——第2章 先从看得到的入手—探究活动
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值