安卓移动开发-第一章

安卓移动开发-第一章

  • 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张图片

  1. 应用程序层:应用
  2. 应用程序框架层:提供构建应用程序时用到的各种API
  3. 核心类库:包含了系统库及安卓运行环境
  4. Linux内核:Linux内核为安卓设备的各种硬件提供了底层的驱动,如显示驱动、音频驱动、照相机驱动、蓝牙驱动、电源管理驱动

1.2Dalvik虚拟机

安卓应用程序主要开发语言为Java,通过Dalvik虚拟机来运行Java程序。

安卓移动开发-第一章_第2张图片

dex文件比jar更加紧凑,但是为了在运行过程中进一步提高性能,dex文件还会进一步优化为odex文件

1.3安卓开发环境搭建

配置安卓环境前,确保已经配置好Java环境变量。

1.新建系统变量:

变量名:ANDROID_SDK_HOME

变量值:Sdk的安装路径

安卓移动开发-第一章_第3张图片

2.path中添加变量platform-tools和tools(sdk文件夹中)安卓移动开发-第一章_第4张图片

开发第一个安卓程序–HelloWorld

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

安卓移动开发-第一章_第5张图片

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

安卓移动开发-第一章_第6张图片

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

安卓移动开发-第一章_第7张图片

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

安卓移动开发-第一章_第8张图片

  • 关于平板–版本号

安卓移动开发-第一章_第9张图片

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

安卓移动开发-第一章_第10张图片

  • 开发者选项–USB–打开

安卓移动开发-第一章_第11张图片

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

安卓移动开发-第一章_第12张图片

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

安卓移动开发-第一章_第13张图片

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

安卓移动开发-第一章_第14张图片

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

安卓移动开发-第一章_第15张图片

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

安卓移动开发-第一章_第16张图片

1.4安卓程序/项目结构

  1. 项目-module

安卓移动开发-第一章_第17张图片

  1. 外层结构

安卓移动开发-第一章_第18张图片

  1. 内层结构

安卓移动开发-第一章_第19张图片

1.4.1新建module

File–New–Module

安卓移动开发-第一章_第20张图片

安卓移动开发-第一章_第21张图片

安卓移动开发-第一章_第22张图片

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文件中安卓移动开发-第一章_第23张图片

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)布局文件中调用
<TextView
	android: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 {

    @Override
    protected 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");
    }
}

安卓移动开发-第一章_第24张图片

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

安卓移动开发-第一章_第25张图片

你可能感兴趣的:(Android,android,gradle,java)