IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> 安卓移动开发-第一章 -> 正文阅读

[移动开发]安卓移动开发-第一章

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)布局文件中调用
<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个级别(低->高)对应静态方法标注
VerboseLog.v()全部信息–黑色
DebugLog.d()调试信息–蓝色
InfoLog.i()一般信息–绿色
WaringLog.w()警告信息–橙色
ErrorLog.e()错误信息–红色
AssertLog.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");
    }
}

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

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2022-03-13 21:56:51  更:2022-03-13 21:58:33 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 17:29:03-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码