android studio使用-最简单的apk
发布日期:2022-02-09 20:39:14 浏览次数:8 分类:技术文章

本文共 5173 字,大约阅读时间需要 17 分钟。

 

 

AS的版本

AS版本

对应下载包

备注

3.0

最稳定的版本,正式版

3.1

比较稳定,正式版

3.2

比较稳定,正式版

3.4

正式版

Android应用结构分析

使用AS开发android十分简单,除了创建Android项目,开发者只需要使用

activity_main.xml文件定义用户界面

MainActivity.java源代码编写业务实现。

工程文件结构

首先是Project,这个显示的就是工程目录下的所有文件。

image.png

app文件结构

app目录是典型的Gradle项目,需要开发的内容都在这里面实现。

build.gradle是该项目的构建文件,注意,有项目的build.gradle和应用的build.gradle。添加依赖的时候避免出错

build目录是该项目的构建结果,注意,有项目的build和应用的build。注意创建

libs目录存放该项目所依赖的第三方库

src是项目的开发重点,源代码和资源都在该目录下。(截图省略了res资源的内容)

 

app的重要目录及文件

  • build.gradle

所有android项目构架都需要改插件。除非你自己去完成构建工作。

apply plugin: 'com.android.application'

接下来的是android的定义全局属性:

android {    //解决release编译时app:lintVitalRelease错误添加    lintOptions {        checkReleaseBuilds false        abortOnError false    }    //编译sdk版本,compileSdkVersion不低于targetSdkVersion    compileSdkVersion 28    //编译工具版本,一般高版本的编译工具编译较低版本的编译sdk    buildToolsVersion "29.0.2"    //默认配合    defaultConfig {        //应用id        applicationId "com.example.myapplication202001152138"        //SDK最低版本        minSdkVersion 27        //目标SDK版本        targetSdkVersion 28        versionCode 1        versionName "1.0"        //测试监控器        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"    }    buildTypes {        release {            minifyEnabled false            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'        }    }}

构建所需的依赖

dependencies {    //定义项目主源码的依赖    //下面配置依赖libs库目录下的所有jar包    implementation fileTree(dir: 'libs', include: ['*.jar'])    //android编译sdk的版本与android的全局配置一致。    //'com.android.support:appcompat-v7:*.1.0',不高于compileSdkVersion    implementation 'com.android.support:appcompat-v7:28.0.0'    //下面配置从中央仓库下载依赖jar包,该包对应com.android.support.constraint库    implementation 'com.android.support.constraint:constraint-layout:1.1.3'   //定义androidTest下的代码依赖    testImplementation 'junit:junit:4.12'    androidTestImplementation 'com.android.support.test:runner:1.0.2'    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'}

 

  • main

main目录下有java目录和res目录,AndroidManifest.xml

  1. jav目录保存java文件,res保存android的各种资源文件。其中:

    layout子目录:存放界面布局文件

    values目录:存放xml资源文件,比如字符串:string,颜色:color,尺寸:dimens等
    drawable目录:定义了Drawable资源,对应drawable-ldpi,drawable-mdpi等
    mipmap目录:as3.0出现的内容,现在该目录定义分辨率,drawable定义背景灯 

  1. AndroidManifest.xml

android项目的系统清单文件。用来控制应用名称,图标,访问权限等整体属性。

而且android应用的四大组件:Activity,SErvice,ContentProvider,BroadcastReceiver都在其中配置。

  1. R.java文件

/Users/lounious/Documents/android_iot_data/MyApplication202001152138/app/build/generated/not_namespaced_r_class_sources/debug/processDebugResources/r/android/support/下一系列文件夹下都有。

暂不接触。

  • main次级目录res>values

android约定,将不同的资源放在不同的文件夹内,这样可以方便的使用aapt工具来扫描这些资源,并为他们声称对应的R.java文件。

常量文件string.xml

如下定义了两个字符串常量,这样在整个app中就可以使用语法@string/app_name,@string/click使用。

My Application202001152138
单击我

另外一种是分配组件标识符

通过在文件中这种定义方式,后面就可以在Java文件中调用activity的findviewbyid()方式来获取

在xml文件中则可以使用@id/<标识符代号>,即去掉+

android:id="@+id/show"

 

AndroidManifest.xml

文件清单信息:

//支持各种类型的屏幕
//应用程序的图标,标签主题等
//定义组件activity
//定义activity的入口
//加载该应用时的activity

AS开发环境踩坑

第一坑:gradle无法打开自己的zip包

创建Basic activity后,报错,gradle无法打开自己的zip包。

image.png

第二坑:需手动下载对应的SDK版本

默认新project不自动安装工程对应的android SDK,或者不自动匹配,安装。

AS默认安装最新的android SDK,但是一般在开发时要安装自己对应版本android SDK

打开偏好选项,安装对于你的SDK版本。

image.png

image.png

 

第三坑-project structure,无法使用preview功能(“所见即所得”设计界面)

新版默认buildToolsVersion是使用本地最新版本。但最新版本可能低于选择的SDK API版本,需手动设置较低的compileSdkVersion版本。否则可能导致xml文件全部报错,preview打不开。

File-project structur-Modules,重新配置后会自动同步。

image.png

直接现象是activiyt_main.xml打开全是红色告警,右侧的preview打不开页面。

image.png

CompileSdkVersion与buildeToolVersion区别

1、CompileSdkVersion是你SDK的版本号,也就是API Level,例如API-19、API-20、API-21等等。

2、buildeToolVersion是你构建工具的版本,其中包括了打包工具aapt、dx等等。

这个版本号一般是API-LEVEL.0.0。 例如I/O2014大会上发布了API20对应的build-tool的版本就是20.0.0

3、可以用高版本的build-tool去构建一个低版本的sdk工程,例如build-tool的版本为20,去构建一个sdk版本为18的,反之则不行。

 

第四坑Android resource linking failed

报错信息:com.android.builder.internal.aapt.v2.Aapt2Exception: Android resource linking failed

原因是gradle scripts--build.gradle(Module:app)中的报错:

image.png

 

compileSdkVersion 26  不低于 targetSdkVersion 26

implementation 'com.android.support:appcompat-v7:26.1.0',不高于compileSdkVersion

………………………………compileSdkVersion 26    defaultConfig {    applicationId "com.example.myapplication201912111032"        minSdkVersion 26        targetSdkVersion 26        ………………        ………………implementation 'com.android.support:appcompat-v7:26.1.0'

image.png

 

第五坑:创建工程后,界面显示问题

在完成empty activity和basic activity之后,初始的界面是android界面,需要改成我们常用的project结构。

初始显示的android界面:

image.png

修改后的工程(project)结构

image.png

第六坑:再次打开页面import的依赖全部不可用。

需要做下文件的同步,如下图。

另外是关闭offline work选项(保证依赖可以自动联网)

image.png

 

image.png

第七坑:第六坑之后,仍有部分库没有匹配依赖,

比如:import android.support.annotation.Nullable;

image.png

在build.gradle的项目依赖文件中加入依赖:

implementation 'androidx.annotation:annotation:1.1.0'

同上做Sync with File System。

其实第六坑和第七坑的问题是一样的。区别在于一个有添加了依赖没有同步,一个没添加依赖。

 

 

android构建,编译与运行

apk包路径

编译完成后在对应路径下能看到release或者debug包

release版本:/app-name/build/outputs/apk/release

debug版本:/app-name/build/outputs/apk/debug

编译

常常使用很久的代码,编译不过。代码更新后重新编译的时使用。清除chche并重启build

image.png

工程管理

设置编译变量,确保编译的包是debug/release

重新编译打包

重新编译工程前先清除。

image.png

转载地址:https://blog.csdn.net/louniuous/article/details/105817506 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:测试环境切换-Hosts文件的有些操作
下一篇:界面控件识别工具-UI atomator

发表评论

最新留言

能坚持,总会有不一样的收获!
[***.219.124.196]2024年03月21日 05时17分11秒