《黑马程序员Android移动应用基础教程》学习笔记(1)
Ch 1. Android 基础入门
1.1 Android简介
1.1.1 通信技术
- 1G
- 最初的模拟技术,仅限语音的蜂窝电话标准。
- 类似简单的无线电台,只能进行通话。
- 通话锁定在一定频率上,即手机号码。
- 很容易被窃听。
- 2G
- 9.6kbit/s。
- 以数字语音传输技术为核心。
- 增加接收数据功能。
- 2G智能机支持一些简单的Java小程序。
- 3G
- 室内2Mbit/s,室外384kbit/s,行车144bit/s。
- 将无线通信与国际互联网等多媒体通信结合的新一代移动通信系统。
- 4G
- 10~20Mbit/s,最高可达100Mbit/s。
- 包含TD-LTE和FDD-LTE两种制式。
LTE:Long Term Evolution.
LTE为3.9G,未达到4G标准,升级版LTE Advanced满足国际电信联盟对4G的要求。 - 集3G与WLAN于一体。
- 5G
- 据说可达10Gbit/s。
- 尚未正式商用。
1.1.2 Android发展历史
时间 | 版本 | 代号 |
---|---|---|
2009-4-30 | 1.5 | Cupcake |
2009-9-15 | 1.6 | Donut |
2009-10-26 | 2.0/2.1 | Eclair |
2010-5-20 | 2.2/2.2.1 | Froyo |
2010-12-7 | 2.3 | Gingerbread |
2011-2-2 | 3.0 | Honeycomb |
2011-5-11 | 3.1 | Honeycomb |
2011-7-13 | 3.2 | Honeycomb |
2011-10-19 | 4.0 | Ice Cream Sandwich |
2012-6-28 | 4.1 | Jelly Bean |
2012-10-30 | 4.2 | Jelly Bean |
2013-7-25 | 4.3 | Jelly Bean |
2013-9-4 | 4.4 | Kitkat |
2014-10-15 | 5.0 | Lollipop |
2015-9-30 | 6.0 | Marshmallow |
2016-8-22 | 7.0 | Nougat |
2017-8-22 | 8.0/8.1 | Oreo |
1.1.3 Android体系结构
- 应用程序层
是一个核心应用程序的集合。 - 应用程序框架层
主要提供了构建应用程序时用到的各种API 。 - 核心类库
- 系统库主要通过C/C++库来为Android系统提供主要的特性支持。
- Android运行时库主要提供一些核心库,还包括了Dalvik虚拟机。
- Linux内核
为Android设备的各种硬件提供了底层的驱动。
Dalvik虚拟机
编译文件过程:
ART模式英文全称为Android runtime,是4.4新增的一种应用模式。在启动ART模式后,系统在安装应用的时候会进行一次预编译,在安装应用程序时会先将代码转换为机器语言存储在本地
1.2 Android开发环境搭建
略
1.3 开发第一个Android程序
略
1.4 Android程序结构
文件和文件夹
1.5 资源的管理与使用
Android程序的资源都保存在res目录下。
res目录
1.5.1 图片资源
- 应用图标资源:mipmap开头
- 界面中使用图标资源:drawable开头
密度范围值(dpi) | mipmap文件夹 | drawable文件夹 | 图标大小(px) |
---|---|---|---|
120~160 | _mdpi | _mdpi | 48x48 |
160~240 | _hdpi | _hdpi | 72x72 |
240~320 | _xdpi | _xdpi | 96x96 |
320~480 | _xxxdpi | _xxxdpi | 144x144 |
480~640 | _xxxdpi | _xxxdpi | 192x192 |
- Java调用图片资源
在Acitvity
的方法中通过getResources().getDrawable()
方法调用。
getResources().getDrawable(R.mipmap.ic_launcher);
getResources().getDrawable(R.drawable.icon);
- XML布局文件调用图片资源
@mipmap/ic_launcher
@drawable/icon
1.5.2 主题和样式资源
主题
主题资源定义在res/values/styles.xml
文件中。<style></style>
标签定义主题,name
指定主题名,parent
指定系统父主题,<item></item>
标签设置主题样式。
根元素<resources></resources>
中可以包含多个<style></style>
,每个<style></style>
可以包含多个<item></item>
不是必须存在
styles.xml
文件中,有时候自动创建的是Theme.xml
,而不是Styles.xml
,扩展而言就是style只是属性,与文件名无关。- 在
AndroidManifest.xml
中设置主题
<application......android:theme ="@style/AppTheme"></application>
- 在Java代码中设置主题
setTheme(R.style.AppTheme);
- 在
样式
样式存放在res/values/styles.xml
中,通过<style>
标签中的name
属性设置样式名称,通过<item>
标签设置控件样式。在布局文件的View控件中通过style属性调用textViewStyle样式:
<TextView......style="@style/textViewStyle"/>
1.5.3 布局资源
当创建一个Android程序时,默认会在res/layout
文件夹中生成一个布局资源文件activity_main.xml
,也可在res/layout
文件夹中创建新的布局资源文件。
- 通过Java代码调用布局资源文件
在onCreat()
方法中通过调用setContenView()
方法来载入Activity
对应布局资源文件:setContentView(R.layout.activity_Main);
- 在XML布局文件中调用布局资源文件
在XML布局文件中通过<include>
标签调用activity_main.xml
布局资源文件:<include layout="@layout/activity_main">
1.5.4 字符串资源
在res/values/strings.xml
文件定义字符串:
<resources><string name="app_name">字符串</string>
</resources>
string.xml
文件中只能有一个根元素,根元素中可以包含多个<string></string>
标签
- 通过Java代码调用字符串资源
在Activity
的onCreat()
方法中调用getResources().getString()
加载app_name
字符串资源:getResources().getString(R.string.app_name);
- 在XML布局文件中调用字符串资源
@string/app_name
1.5.5 颜色资源
颜色资源通常定义在res/values/colors.xml
文件中。
<resources><color name="colorPrimary">#3F51B5</color>
</resources>
<color></color>
标签用于定义颜色资源,name
属性用于指定颜色资源的名称,两个标签中间设置的是颜色值。
- 通过Java代码调用颜色资源
在Activity
的onCreat()
方法中调用getResources().getColor()
加载colorPrimary
颜色资源:getResources().getColor(R.color.colorPrimary);
- **在XML布局文件中调用颜色资源
@color/colorPrimary
定义颜色值
- #RGB: 使用一位十六进制数值表示红绿蓝
- #ARGB: 使用一位十六进制数值表示透明度、红绿蓝
- #RRGGBB: 使用二位十六进制数值表示红绿蓝
- #AARRGGBB: 使用二位十六进制数值表示透明度、红绿蓝
颜色的小写字母可以换成大写
1.5.6 尺寸资源
Android界面中View的宽高和View之间的间距值是通过尺寸资源设置的。
尺寸资源通常定义在res/values/dimens.xml
文件中。
在Android Studio3.2版本中没有默认创建dimen.xml
文件,需要手动创建。
<dimen></dimen>
标签用于定义尺寸资源,name
属性指定尺寸资源名称,标签中间设置尺寸大小。
- 通过Java代码调用尺寸资源
getResources().getDimension(R.dimen.activity_horizontal_margin);
- 通过XML布局文件中调用尺寸资源
@dimen/activity_horizontal_margin
Android支持的尺寸单位
- px 像素:每个px对应屏幕上的一个点
- dp 设备独立像素:dp与dip意义相同,是与屏幕密度无关的尺寸单位。每英寸160点的显示屏上,1dip=1px。dp按屏幕分辨率比例放大或缩小。
- sp 比例像素:主要处理字体大小,sp与dp比较相似,能够跟随用户系统字体大小变化而变化。
- in 英寸:屏幕对角线的长度单位
- pt 磅:屏幕唔理察高度单位,1pt=1/72in
- mm 毫米:屏幕物理长度单位
1.6 程序调试
暂略
《黑马程序员Android移动应用基础教程》学习笔记(1)相关推荐
- JavaScript高级程序设计第四版学习--第二十四章
title: JavaScript高级程序设计第四版学习–第二十四章 date: 2021-5-31 10:46:01 author: Xilong88 tags: JavaScript 本章内容: ...
- JavaScript高级程序设计红宝书学习笔记第三章基本概念
第三章 基本概念 本章内容 语法 数据类型 操作符 语句 函数 3.1 语法 3.1.1 区分大小写,ECMAScript中的一切(变量.函数名和操作符)都区分大小写. 3.1.2 标识符 标识符:变 ...
- javascript 高级程序设计(第4版)阅读笔记(三)
第3章,内容很长,所以更得慢,主要讲的是ECMAScript es的语言基础:语法.数据类型.基本操作符.流控制语句.理解函数,ECMAScript 的语法很大程度上借鉴了 C 语言和其他类 C ...
- 阅读JavaScript高级程序设计(第二版)笔记
第一章js简介 JavaScript诞生在1995年,当时负责进行输入型验证. JavaScript是一种专为与网页交互而设计的脚本语言,分为 : 1. ECMAScript核心语言功能. 2.文档对 ...
- JavaScript高级程序设计第三版.CHM【带实例】
从驱动全球商业.贸易及管理领域不计其数的复杂应用程序的角度来看,说 JavaScript 已经成为当今世界上最流行的编程语言一点儿都不为过. JavaScript 是一种非常松散的面向对象语言,也是 ...
- JavaScript高级程序设计[第3版]
JavaScript高级程序设计[第3版] package xyz.huning.toolkit.pdf;import java.io.FileOutputStream; import java.io ...
- Js高级程序设计第三版学习(十二章)
Js高级程序设计第三版学习(十二章) 第十二章 DOM2和DOM3 1.样式: 访问样式属性 任何支持style特性的HTML元素都有一 ...
- JavaScript高级程序设计 第4版----String
JavaScript高级程序设计 第4版----String 文章目录 JavaScript高级程序设计 第4版----String 1.JavaScript 字符 2.字符串操作方法 1.conca ...
- 《JavaScript高级程序设计 第3版》-学习笔记-1
P1-P30页 1.<script>标签的属性 async:async(html) | async="async"(xhtml),表示立即下载脚本,但不马上执行(执行 ...
- 新书-JavaScript高级程序设计:第2版(预订中,估价)
http://www.china-pub.com/196857 JavaScript的应用在广度和深度上日益扩大和加深,前端开发亟待掌握的JavaScript技能也越来越具有挑战性. 这个新版本几乎全 ...
最新文章
- python主要运用于-python主要用于
- python基础教程怎么样-怎样学习Python?Python入门必看
- 模拟退火算法解决TSP(python实现 110+行代码)【gif生成】
- java 对象数据 搜索,java – 使用反射检索对象的数据类型
- 从产品经理到创业者如何拿到第一个1000万融资
- -i 可以编译添加多个_大咖说 | 基于 NXP i.MX8 eIQ 环境搭建和编译
- 产品经理须知 | API接口知识小结
- Linux系统:Centos7搭建Redis单台和集群环境
- 多大的计算机科学,科学网—大家计算机的屏幕尺寸都是多大的? - 刘洋的博文...
- “中文编程”会是解决中国程序员编程效率的秘密武器,成为中国软件工程的“银弹”么?...
- 如果战斗机飞行员弹出,自动驾驶仪会接管飞机安全降落么?
- 我的Android进阶之旅------Android图片处理(Matrix,ColorMatrix)
- java 6789的10000次方,用MSSQL计算2的10000次方
- ASPNetCore MVC ModelValidation-ajax
- Kafka高可用机制入门
- BGP AS过滤列表
- 具体案例 快速原型模型_3D快速成型技术需要传统加工方法30%~50%的工时和20%~35%的成本,可以如此地降低成本?...
- mac matlab 模糊,MATLAB 2014a 在Mac OS X yosemite 10.10 Retina显示模糊的解决办法
- CNN图像识别_算法篇
- for循环 批处理 查找文件 详细信息 文件名
热门文章
- echarts柱状堆积图
- JUCE小白求教VS2019-C1083无法打开包括文件
- 图片复印如何去除黑底_我告诉你照片打印如何去除黑底
- 学习iOS逆向有什么用?
- 图像二值化——最大类间方差法(Ostu,大津法)
- pb与java_Java中使用PB教程
- 论文翻译:2020_Demucs:Real Time Speech Enhancement in the Waveform Domain
- html实训大作业《基于HTML+CSS+JavaScript红色文化传媒网站(20页)》
- mysql调查问卷数据库设计_客服-问卷调查-问题答案表 - 数据库设计 - 数据库表结构 - 果创云...
- 《缠中说禅108课》99:走势结构的两重表里关系 3