Android记录2021/2/19

1581-洪同学

发表文章数:62

热门标签

首页 » 未分类 » 正文

1.1Android概述

  1. Android 发展历程
  2. Android2.3商用起点(第一个Android商用版本是2010年7月份发布的)
  3. 现在到Android11

1.2Android环境搭建

直接在官网下载Android Studio即可。然后在安装之前先进入BIOS(基本输入输出系统),在启动计算机的时候按esc进入,然后开启vt(虚拟化技术——Virtualzation Technology,简称VT),才能允许在电脑上运行AVD Manager。会遇到下面的东东,直接点击install Haxm即可。

关于HAXM
HAXM是一个跨平台的硬件辅助虚拟化引擎(hypervisor),广泛用作Android Emulator和QEMU的加速器。 它一直支持在Windows和macOS上运行,并且已经移植到其他主机操作系统,例如Linux和NetBSD。
HAXM作为主机操作系统上的内核模式驱动程序运行,并为用户空间提供类似KVM的界面,从而使QEMU等应用程序能够利用现代英特尔CPU内置的硬件虚拟化功能,即英特尔虚拟化技术。

Android记录2021/2/19
然后将虚拟机语言修改为简体中文。
利用真机调试部分:
材料:USB数据线、honorV20、hp

  1. 手机开发者模式选择USB连接方式,USB配置方式选择MIDIa
  2. 进入SDK Tools勾选Google USB Driver
    Android记录2021/2/19
  3. 在控制台输入如下内容
    Android记录2021/2/194. 此处显示如下,即可实现真机调试
    Android记录2021/2/19

【示例】显示Welcome to Android World

首先进入res/values/string.xml,选择open editor进入编辑模式
Android记录2021/2/19点击+号添加变量
Android记录2021/2/19变量名按照Activity名称_组件标识_变量名规范命名。Default Value设置变量内容。
Android记录2021/2/19
然后进行如下操作:

  1. 进入视图的布局文件activity_main.xml
  2. 选择布局的设计模式
  3. 选择布局的TextView组件
  4. 修改TextView的组件的值
    Android记录2021/2/19
    然后运行,or选择真机运行。
    Android记录2021/2/19
    Android记录2021/2/19

1.3 Android程序结构

Android程序结构图:主要支持“Project”、“Android”和“Packages”

Android记录2021/2/19

1. 配置信息文件
2. 程序主要代码
3. 程序的资源文件
4. 编译配置信息文件
5. 项目的编译配置
6. Module的配置信息文件
7. 属性配置文件
8. 项目设置文件
9. SDK路径设置文件

Android Studio使用Gradle工具进行程序的构建和编译程序

  1. Gradle构建文件包括:
Project/setting.gradle
Project/build.gradle
module/build.gradle
  1. Android 项目创建成功后会自动下载和更新Gradle,需要关闭Windows防火墙
  2. Project/build.gradle文件内容如下:
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {//设置项目编译环境
    repositories { //支持java依赖库管理,用于项目的依赖
        google()
        jcenter()
    }
    dependencies {
        classpath "com.android.tools.build:gradle:4.1.2" // Gradle工具版本

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}
//多项目的集中配置,对于Module的配置,都是基于项目配置的继承方式
allprojects {
    repositories {
        google()
        jcenter()
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}
  1. Module/build.gradle文件内容如下:
plugins {
    id 'com.android.application' //构建为应用程序
}

android {
    compileSdkVersion 29   //SDK编译版本
    buildToolsVersion "29.0.3"

    defaultConfig {
        applicationId "com.example.version01"
        minSdkVersion 29       //运行最低要求
        targetSdkVersion 29         //运行最高要求
        versionCode 1
        versionName "1.0"

        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }

    buildTypes { //编译类型选择
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
}

dependencies {  //编译所需要的外部包支持

    implementation 'androidx.appcompat:appcompat:1.1.0'
    implementation 'com.google.android.material:material:1.1.0'
    implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
    testImplementation 'junit:junit:4.+'
    androidTestImplementation 'androidx.test.ext:junit:1.1.1'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
}

Android应用程序运行过程

Android记录2021/2/19双击手机上该应用的图标时,系统会将这个单击事件包装成一个Intent(意图)。AndroidManifest.xml中匹配的Intent过滤器””,根据<activity>元素的“name”属性来寻找对应的Activity类

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.version01">

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/Theme.Version01">
        <!--Activity属性设置-->
        <activity android:name=".MainActivity"><!--Activity名称-->
            <intent-filter> <!--意图过滤器-->
                <action android:name="android.intent.action.MAIN" />

                <!--加载意图-->
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

Android创建该Activity类的实例对象,执行该类的onCreate方法初始化Activity布局
super.onCreate(savedInstanceState)调用其父类Activity的OnCreate实现界面的画图绘制工作
setContentView(R.layout.activity_main)加载布局界面

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
}

1.4 Android程序调试

使用LogCat对Android的应用程序监控;DDMS视图输出Android调试的信息

Log.v(String tag,String msg) //输出冗余信息
Log.d(String tag,String msg) //输出调试信息
Log.i(String tag,String msg) //输出普通信息
Log.w(String tag,String msg) //输出警告信息
Log.e(String tag,String msg) //输出错误信息
//tag 日志标签,可用于过滤日志信息
//msg 输出的日志信息
  private void LogCatTest(){
        String Tag = getLocalClassName().toString();//获得类名的全部信息
        Log.v(Tag,"这里输出的是冗余信息");
        Log.i(Tag,"这里输出的是普通信息");
        Log.e(Tag,"这里输出的是错误信息");
        Log.w(Tag,"这里输出的是警告信息");
        Log.d(Tag,"这里输出的是调试信息");
    }

DDMS原理

App VMs产生Log日志信息
ADB Device Daemon与App VMs交互输出日志信息
ADB Device Daemon通过USB或者UDP协议与PC上的ADB Host Daemon呈现信息给用户

Android记录2021/2/19

DDMS:“Device File Explorer ”设备文件查询工具
Android记录2021/2/19
DDMS:模拟器控制功能
Android记录2021/2/19
设置断点;调试运行;单步执行;进入函数执行;跳转到下一个断点;中断运行;调试和其他正常的调试没啥差别。

标签:

未经允许不得转载:作者:1581-洪同学, 转载或复制请以 超链接形式 并注明出处 拜师资源博客
原文地址:《Android记录2021/2/19》 发布于2021-02-19

分享到:
赞(0) 打赏

评论 抢沙发

评论前必须登录!

  注册



长按图片转发给朋友

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

Vieu3.3主题
专业打造轻量级个人企业风格博客主题!专注于前端开发,全站响应式布局自适应模板。

登录

忘记密码 ?

您也可以使用第三方帐号快捷登录

Q Q 登 录
微 博 登 录