安卓移动开发-第一章

  • 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内核

  1. 应用程序层:应用
  2. 应用程序框架层:提供构建应用程序时用到的各种API
  3. 核心类库:包含了系统库及安卓运行环境
  4. 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

  1. 创建项目–选择空项目

  1. 设置相关信息–sdk默认下载到C:\Users\HUAWEI\AppData\Local\Android\Sdk

  1. 默认界面–gradle默认下载到C盘–用户–HUAWEI–.gradle

  1. 不使用studio创建的模拟器–连接夜神模拟器
  • 设置–关于平板

  • 关于平板–版本号

  • 连续点击版本号直到显示“你已进入开发者模式”
  • 回到设置–找到开发者选项

  • 开发者选项–USB–打开

  • 找到安装夜神的文件夹中.exe文件的目录,在目录框中最前面输入cmd+空格回车进入doc中

  • 进入到doc窗口中输入:adb devices回车—显示要连接的地址

  • 再输入:adb connect 127.0.0.1:62001 回车会显示连接成功

  • 回到studio–如下图显示连接成功

  • 点击运行–夜神模拟器如下图显示表示第一个程序创建运行成功

1.4安卓程序/项目结构

  1. 项目-module

  1. 外层结构

  1. 内层结构

1.4.1新建module

File–New–Module

1.4.2移除–删除module

  1. File–Project–Module–选中要移除的module,点击上方-号–此时只是在项目中移除了module,并未真正删除,还可以在文件夹中找到
  2. 移除操作完成后,在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图片资源

  1. 应用图标资源存放位置:以mipmap开头的文件夹中,不同文件夹划分以屏幕密度为基础,不屏幕密度自动匹配不同文件夹中的图标资源
  2. 界面使用的图片资源存放位置:以drawable开头的文件夹中,不同文件夹划分以屏幕密度为基础,不屏幕密度自动匹配不同文件夹中的图片资源
  • 资源的使用:
  1. 通过Java代码调用(app-src-main-java-com.-MainActivity)
getResources().getDrawable(R.mipmap.ic_launcher);
  1. 通过XML(app-src-main-res-layout-.xml-text)布局文件中调用
<TextViewandroid:background="@mipmap/ic_launcher"android:background="@drawable/icon"/>

1.5.2主题和样式资源

  1. 主题:包含一种或多种的格式化属性集合,调用主题可以改变窗体的样式
  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标签

  1. 资源的使用:
  • 通过Java代码设置:
setTheme(R.style.AppTheme);
  • 在AndroidManifest.xml中设置主题
<manifest xmlns:android="http://schemas.android.com/apk/res/android"<application……………………………………android:theme="@style/AppTheme"></application></manifes>
  1. 样式:设置view的样式
  2. 央视存放在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标签设置控件的样式:宽高……
  1. 通过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该目录存放的是程序中所有的布局资源文件

  • 调用布局资源:
  1. 通过Java代码调用
setContentView(R.layout.activity_main);
  1. 在xml布局文件中调用:
<include layout="@layout/activity_main"/>

1.5.4字符串资源

  • 使用频率最高的资源
  • 在res–values–strings.xml文件中定义字符串资源
<resources><string name="app_name">My FirstApplication</string>
</resources>
  1. string标签定义字符串资源
  2. name属性指定字符串资源名称
  3. 两个标签间为字符串内容
  • 字符串资源的使用:
  1. 通过Java代码调用:
getResourcea().getString(R.string.app_name);
  1. 在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>
  1. color标签定义颜色资源
  2. name指定颜色资源的名称
  3. 两个标签中间为颜色值
  4. 文件中只能有一个resources根元素,可以包含多个color标签
  • 颜色资源的调用:
  1. 通过哦Java代码调用:
getResources().getColor(R.color.colorPrimary);
  1. 在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>
  1. dimen标签定义尺寸资源
  2. name属性指定尺寸资源名称
  3. 两个标签中间为尺寸值
  4. 文件中只能又一个resources根标签,可以有多个dimen标签
  • 尺寸资源的调用:
  1. 通过Java代码调用:
getResources().getDemension(R.dimen.activity_horizontal_margin);
  1. 在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
  1. dp:与屏幕密度无关的单位,自动缩放比例
  2. sp:主要处理字体大小,可以跟随系统字体大小变化而改变,用法同上

1.6程序调试

LogCat的使用

  1. logcat是命令行工具,用于获取程序从启动到关闭的日志信息
  2. 安卓使用android.util.Log类的静态方法实现输出程序调试信息
输出的日志内容的6个级别(低->高) 对应静态方法 标注
Verbose Log.v() 全部信息–黑色
Debug Log.d() 调试信息–蓝色
Info Log.i() 一般信息–绿色
Waring Log.w() 警告信息–橙色
Error Log.e() 错误信息–红色
Assert Log.wtf() 断言失败后佛如错误信息–红色
  1. 使用: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");}
}

  1. 由于logcat输出的信息多&杂,因此可以使用过滤器找到自己需要的信息

安卓移动开发-第一章相关推荐

  1. ASP.NET自定义控件组件开发 第一章 第二篇 接着待续

    ASP.NET自定义控件组件开发 第一章 第二篇 接着待续 ASP.NET自定义控件组件开发 第一章 第二篇 接着待续 很感谢大家给我的第一篇ASP.NET控件开发的支持!在写这些之前,我也看了一些例 ...

  2. 【微信开发第一章】SpringBoot实现微信公众号创建菜单,同步菜单功能

    前言 在进行微信公众号业务开发的时候,微信公众号的自定义菜单是非常重要的一环,该篇文章会先使用微信测试工具过一遍流程,再使用代码进行实现,争取看过的小伙伴都能够实现,创建公众号菜单和代码同步公众号菜单 ...

  3. Android深度探索--HAL与驱动开发----第一章读书笔记

    1.1   Android拥有非常完善的系统构架可以分为四层: 第一层:Linux内核.主要包括驱动程序以及管理内存.进程.电源等资源的程序 第二层:C/C++代码库.主要包括Linux的.so文件以 ...

  4. [ARM嵌入式系统开发]第一章之Dhrystone

    在书的第一章开头部分,作者提到了"最成功的ARM内核之一ARM7TDMI,具有最高120 Dhrystone MIPS的性能.高的代码密度和低功耗等特性,使它成为移动嵌入式设备的最佳选择&q ...

  5. Python程序开发——第一章 基本python语法

    目录 前言 一.PyCharm (一)创建工程文件夹 (二)创建 python 文件并运行 二.IDLE 三.Python中的注释用法 四.变量的命名事项 五.基本输入和输出函数 (一)输入和输出 ( ...

  6. Android驱动开发第一章

    本章作为学习Linux的第一道门,将对Android以及Linux驱动做一个总体的介绍,以便读者对Linux驱动有一个感性的认识,并更好地学习Linux驱动的方法和技巧打下基础. 首先讲述了四层基础架 ...

  7. 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 ...

  8. [ARM嵌入式系统开发]第一章之嵌入式系统的软硬件

    本章的最后,通过描述ARM为核心的嵌入式系统,来介绍了嵌入式系统的软件和硬件构成和结构.这里根据这部分的介绍以及其他的文章,描述下通用的嵌入式系统的软件和硬件.     首先来说下硬件,书中说,包含有 ...

  9. 求职OMG——大学生就业指导与技能开发 第一章测试

    求职OMG--大学生就业指导与技能开发 第1部分 总题数: 10 1[单选题] (20分) 下列关于面试的说法错误的是(C) A面试给用人单位和应聘者提供了进行双向交流的机会,能使用人单位和应聘者之间 ...

最新文章

  1. 史无前例的 HTML5 资源参考指南
  2. c语言中怎么 写子程序,哪位师傅知道51单片机怎样编写子程序?C语言的。在主程序里调...
  3. asp.net 一个简易权限的小例子设计
  4. 博图组态显示未分配的设备_S71200CPU做IO共享设备的配置方法【图文】
  5. 本地html如何导出pdf,html表格以pdf格式导出到本地
  6. oracle查看数据库文件大小
  7. 服务器应用越狱修复,iOS 11.2-11.3.1越狱问题汇总 iOS 11.2-11.3.1越狱错误及修复教程...
  8. 2021年茶艺师(初级)考试资料及茶艺师(初级)模拟试题
  9. 泛融等多家业界权威通力合作,联合信通院发布《区块链供应链金融白皮书》
  10. Https证书浏览器红色警告解决
  11. android-5.0新功能介绍(Lollipop)
  12. 【三维目标检测】3DSSD(二)
  13. 学会Zynq(28)SPI控制器简介
  14. AjaxPro2 方法未定义,对象不支持此方法或属性,解决办法
  15. 别让用户发呆—设计中的防呆的6个策略
  16. python读取雷达基数据_重磅更新!读取CINRAD雷达基数据的Python模块
  17. java 内嵌chrome_Java嵌入谷歌内核简单浏览器
  18. Marathon 服务发现及负载均衡 marathon-lb
  19. 整体大于各部分功能之和
  20. 制造业产品开发中应用敏捷Scrum的思考 (下篇)

热门文章

  1. 梅科尔工作室-寇涵冰-鸿蒙笔记4
  2. [转]睡五分钟等于六钟头的方法
  3. windows phone7,zune:can't connect to your phone --WP7手机无法连接Zune 的解决方法
  4. go学习笔记 sync/Cond源码
  5. widnows监控linux 内存,Linux_带你全面了解Linux系统内存监控,在Windows系统中查看内存的使用 - phpStudy...
  6. python自动化流程概念_【测码学院】python自动化测试-自动化指的是什么
  7. 信号在自由空间传播损耗的变化--fspl
  8. CAP 定理和 BASE理论 (了解分布式事务理论模型)
  9. Financial Time Series Segmentation Based On Turning Points
  10. 漫画|图灵奖是怎么来的?