安卓移动开发-第一章
安卓移动开发-第一章
- 1.安卓基础入门
- 1.1安卓体系结构
- 1.2Dalvik虚拟机
- 1.3安卓开发环境搭建
- 开发第一个安卓程序--HelloWorld
- 1.4安卓程序/项目结构
- 1.4.1新建module
- 1.4.2移除--删除module
- 1.5资源的管理与使用
- 1.5.1图片资源
- 1.5.2主题和样式资源
- 1.5.3布局资源
- 1.5.4字符串资源
- 1.5.5颜色资源
- 1.5.6尺寸资源
- 1.6程序调试
1.安卓基础入门
1.1安卓体系结构
安卓系统采用分层架构,由高到低分为四层:应用程序层–应用程序框架层–核心类库和Linux内核
- 应用程序层:应用
- 应用程序框架层:提供构建应用程序时用到的各种API
- 核心类库:包含了系统库及安卓运行环境
- Linux内核:Linux内核为安卓设备的各种硬件提供了底层的驱动,如显示驱动、音频驱动、照相机驱动、蓝牙驱动、电源管理驱动
1.2Dalvik虚拟机
安卓应用程序主要开发语言为Java,通过Dalvik虚拟机来运行Java程序。
dex文件比jar更加紧凑,但是为了在运行过程中进一步提高性能,dex文件还会进一步优化为odex文件
1.3安卓开发环境搭建
配置安卓环境前,确保已经配置好Java环境变量。
1.新建系统变量:
变量名:ANDROID_SDK_HOME
变量值:Sdk的安装路径
2.path中添加变量platform-tools和tools(sdk文件夹中)
开发第一个安卓程序–HelloWorld
- 创建项目–选择空项目
- 设置相关信息–sdk默认下载到C:\Users\HUAWEI\AppData\Local\Android\Sdk
- 默认界面–gradle默认下载到C盘–用户–HUAWEI–.gradle
- 不使用studio创建的模拟器–连接夜神模拟器
- 设置–关于平板
- 关于平板–版本号
- 连续点击版本号直到显示“你已进入开发者模式”
- 回到设置–找到开发者选项
- 开发者选项–USB–打开
- 找到安装夜神的文件夹中.exe文件的目录,在目录框中最前面输入cmd+空格回车进入doc中
- 进入到doc窗口中输入:adb devices回车—显示要连接的地址
- 再输入:adb connect 127.0.0.1:62001 回车会显示连接成功
- 回到studio–如下图显示连接成功
- 点击运行–夜神模拟器如下图显示表示第一个程序创建运行成功
1.4安卓程序/项目结构
- 项目-module
- 外层结构
- 内层结构
1.4.1新建module
File–New–Module
1.4.2移除–删除module
- File–Project–Module–选中要移除的module,点击上方-号–此时只是在项目中移除了module,并未真正删除,还可以在文件夹中找到
- 移除操作完成后,在File中会显示delete操作按钮,点击delete可以彻底从项目和文件夹中删除module
注意:在一个studio窗口中只能有一个project–项目;一个项目中可以有多个module
1.5资源的管理与使用
所有的资源存放在:app–build–generated–not_namespaced_r_class_sources–debug–r--com–example–项目名–R.java文件中
1.5.1图片资源
- 应用图标资源存放位置:以mipmap开头的文件夹中,不同文件夹划分以屏幕密度为基础,不屏幕密度自动匹配不同文件夹中的图标资源
- 界面使用的图片资源存放位置:以drawable开头的文件夹中,不同文件夹划分以屏幕密度为基础,不屏幕密度自动匹配不同文件夹中的图片资源
- 资源的使用:
- 通过Java代码调用(app-src-main-java-com.-MainActivity)
getResources().getDrawable(R.mipmap.ic_launcher);
- 通过XML(app-src-main-res-layout-.xml-text)布局文件中调用
<TextViewandroid:background="@mipmap/ic_launcher"android:background="@drawable/icon"/>
1.5.2主题和样式资源
- 主题:包含一种或多种的格式化属性集合,调用主题可以改变窗体的样式
- 主题资源定义在res-values目录下的styles.xml文件中
<resources><!-- Base application theme. --><!--主题--><style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"><!-- Customize your theme here. --><item name="colorPrimary">@color/colorPrimary</item><item name="colorPrimaryDark">@color/colorPrimaryDark</item><item name="colorAccent">@color/colorAccent</item></style></resources>
- style标签用于定义主题
- item标签用于设置主题样式
- name用于指定主题的名称
注意:根标签resources中可以包含多个style标签,style中可以包含多个item标签
- 资源的使用:
- 通过Java代码设置:
setTheme(R.style.AppTheme);
- 在AndroidManifest.xml中设置主题
<manifest xmlns:android="http://schemas.android.com/apk/res/android"<application……………………………………android:theme="@style/AppTheme"></application></manifes>
- 样式:设置view的样式
- 央视存放在res–values目录下的style.xml文件中
<resources><!--样式--><style name="textViewStyle"><item name="android:layout_width">20dp</item><item name="android:layout_height">20dp</item><item name="android:background">#f54e39</item></style></resources>
- name标签设置样式的名称,item标签设置控件的样式:宽高……
- 通过XML(app-src-main-res-layout-.xml-text)布局文件中调用
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"<TextView……style="@style/textViewStyle"…… /></androidx.constraintlayout.widget.ConstraintLayout>
1.5.3布局资源
app-src-main-res-layout-.xml-text该目录存放的是程序中所有的布局资源文件
- 调用布局资源:
- 通过Java代码调用
setContentView(R.layout.activity_main);
- 在xml布局文件中调用:
<include layout="@layout/activity_main"/>
1.5.4字符串资源
- 使用频率最高的资源
- 在res–values–strings.xml文件中定义字符串资源
<resources><string name="app_name">My FirstApplication</string>
</resources>
- string标签定义字符串资源
- name属性指定字符串资源名称
- 两个标签间为字符串内容
- 字符串资源的使用:
- 通过Java代码调用:
getResourcea().getString(R.string.app_name);
- 在XML布局文件中调用:
android:text="@string/app_name"
1.5.5颜色资源
- 使用颜色资源来改变view控件的颜色
- 颜色资源定义在res–values–colors.xml文件中
<resources><color name="colorPrimary">#008577</color><color name="colorPrimaryDark">#00574B</color><color name="colorAccent">#D81B60</color>
</resources>
- color标签定义颜色资源
- name指定颜色资源的名称
- 两个标签中间为颜色值
- 文件中只能有一个resources根元素,可以包含多个color标签
- 颜色资源的调用:
- 通过哦Java代码调用:
getResources().getColor(R.color.colorPrimary);
- 在XML文件中调用:
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"<TextView……android:textColor="@color/colorPrimary"…… /></androidx.constraintlayout.widget.ConstraintLayout>
1.5.6尺寸资源
- 设置view宽高和view之间的间距值
- 尺寸资源定义在res–values–dimens.xml文件中(需要自己创建)
<?xml version="1.0" encoding="utf-8"?>
<resources><dimen name="activity_horizontal_margin">16dp</dimen>
</resources>
- dimen标签定义尺寸资源
- name属性指定尺寸资源名称
- 两个标签中间为尺寸值
- 文件中只能又一个resources根标签,可以有多个dimen标签
- 尺寸资源的调用:
- 通过Java代码调用:
getResources().getDemension(R.dimen.activity_horizontal_margin);
- 在XML布局文件中调用:
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"<TextView……android:layout_width="wrap_content"android:layout_height="@dimen/activity_horizontal_margin"…… /></androidx.constraintlayout.widget.ConstraintLayout>
- 常用dp和sp
- dp:与屏幕密度无关的单位,自动缩放比例
- sp:主要处理字体大小,可以跟随系统字体大小变化而改变,用法同上
1.6程序调试
LogCat的使用
- logcat是命令行工具,用于获取程序从启动到关闭的日志信息
- 安卓使用android.util.Log类的静态方法实现输出程序调试信息
输出的日志内容的6个级别(低->高) | 对应静态方法 | 标注 |
---|---|---|
Verbose | Log.v() | 全部信息–黑色 |
Debug | Log.d() | 调试信息–蓝色 |
Info | Log.i() | 一般信息–绿色 |
Waring | Log.w() | 警告信息–橙色 |
Error | Log.e() | 错误信息–红色 |
Assert | Log.wtf() | 断言失败后佛如错误信息–红色 |
- 使用:app-src–main–java–MainActivity
package com.example.myfirstapplication;import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;public class MainActivity extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);Log.v("MainActivity","Verbose");Log.d("MainActivity","Debug");Log.i("MainActivity","Info");Log.w("MainActivity","Waring");Log.e("MainActivity","Error");Log.wtf("MainActivity","Assert");}
}
- 由于logcat输出的信息多&杂,因此可以使用过滤器找到自己需要的信息
安卓移动开发-第一章相关推荐
- ASP.NET自定义控件组件开发 第一章 第二篇 接着待续
ASP.NET自定义控件组件开发 第一章 第二篇 接着待续 ASP.NET自定义控件组件开发 第一章 第二篇 接着待续 很感谢大家给我的第一篇ASP.NET控件开发的支持!在写这些之前,我也看了一些例 ...
- 【微信开发第一章】SpringBoot实现微信公众号创建菜单,同步菜单功能
前言 在进行微信公众号业务开发的时候,微信公众号的自定义菜单是非常重要的一环,该篇文章会先使用微信测试工具过一遍流程,再使用代码进行实现,争取看过的小伙伴都能够实现,创建公众号菜单和代码同步公众号菜单 ...
- Android深度探索--HAL与驱动开发----第一章读书笔记
1.1 Android拥有非常完善的系统构架可以分为四层: 第一层:Linux内核.主要包括驱动程序以及管理内存.进程.电源等资源的程序 第二层:C/C++代码库.主要包括Linux的.so文件以 ...
- [ARM嵌入式系统开发]第一章之Dhrystone
在书的第一章开头部分,作者提到了"最成功的ARM内核之一ARM7TDMI,具有最高120 Dhrystone MIPS的性能.高的代码密度和低功耗等特性,使它成为移动嵌入式设备的最佳选择&q ...
- Python程序开发——第一章 基本python语法
目录 前言 一.PyCharm (一)创建工程文件夹 (二)创建 python 文件并运行 二.IDLE 三.Python中的注释用法 四.变量的命名事项 五.基本输入和输出函数 (一)输入和输出 ( ...
- Android驱动开发第一章
本章作为学习Linux的第一道门,将对Android以及Linux驱动做一个总体的介绍,以便读者对Linux驱动有一个感性的认识,并更好地学习Linux驱动的方法和技巧打下基础. 首先讲述了四层基础架 ...
- java web 开发——第一章jsp简介
目录 前言 1.1 JSP的概念? 1.2 安装和配置JSP运行环境 1.2.1 下载tomcat9.0 1.2.2 下载安装jdk并配置jdk环境 1.2.3 测试tomcat是否安装成功 1.3 ...
- [ARM嵌入式系统开发]第一章之嵌入式系统的软硬件
本章的最后,通过描述ARM为核心的嵌入式系统,来介绍了嵌入式系统的软件和硬件构成和结构.这里根据这部分的介绍以及其他的文章,描述下通用的嵌入式系统的软件和硬件. 首先来说下硬件,书中说,包含有 ...
- 求职OMG——大学生就业指导与技能开发 第一章测试
求职OMG--大学生就业指导与技能开发 第1部分 总题数: 10 1[单选题] (20分) 下列关于面试的说法错误的是(C) A面试给用人单位和应聘者提供了进行双向交流的机会,能使用人单位和应聘者之间 ...
最新文章
- 史无前例的 HTML5 资源参考指南
- c语言中怎么 写子程序,哪位师傅知道51单片机怎样编写子程序?C语言的。在主程序里调...
- asp.net 一个简易权限的小例子设计
- 博图组态显示未分配的设备_S71200CPU做IO共享设备的配置方法【图文】
- 本地html如何导出pdf,html表格以pdf格式导出到本地
- oracle查看数据库文件大小
- 服务器应用越狱修复,iOS 11.2-11.3.1越狱问题汇总 iOS 11.2-11.3.1越狱错误及修复教程...
- 2021年茶艺师(初级)考试资料及茶艺师(初级)模拟试题
- 泛融等多家业界权威通力合作,联合信通院发布《区块链供应链金融白皮书》
- Https证书浏览器红色警告解决
- android-5.0新功能介绍(Lollipop)
- 【三维目标检测】3DSSD(二)
- 学会Zynq(28)SPI控制器简介
- AjaxPro2 方法未定义,对象不支持此方法或属性,解决办法
- 别让用户发呆—设计中的防呆的6个策略
- python读取雷达基数据_重磅更新!读取CINRAD雷达基数据的Python模块
- java 内嵌chrome_Java嵌入谷歌内核简单浏览器
- Marathon 服务发现及负载均衡 marathon-lb
- 整体大于各部分功能之和
- 制造业产品开发中应用敏捷Scrum的思考 (下篇)
热门文章
- 梅科尔工作室-寇涵冰-鸿蒙笔记4
- [转]睡五分钟等于六钟头的方法
- windows phone7,zune:can't connect to your phone --WP7手机无法连接Zune 的解决方法
- go学习笔记 sync/Cond源码
- widnows监控linux 内存,Linux_带你全面了解Linux系统内存监控,在Windows系统中查看内存的使用 - phpStudy...
- python自动化流程概念_【测码学院】python自动化测试-自动化指的是什么
- 信号在自由空间传播损耗的变化--fspl
- CAP 定理和 BASE理论 (了解分布式事务理论模型)
- Financial Time Series Segmentation Based On Turning Points
- 漫画|图灵奖是怎么来的?