Android-应用结构

使用Android Studio开发Android应用是很简单的,最近几年学习Android很少使用eclipse的了,现在喜欢用eclipse无疑都是大佬,今天来重新温习一下Android的应用结构。

Android项目结构

首先我们来看一下Android Studio大致目录结构图。
在这里插入图片描述
接下来我们来了解一下对应文件的内容。

build.grade构建文件

apply plugin: 'com.android.application' //标注使用了此插件,所有的Android项目都需要使用此插件,如果使用Kotlin开发项目,则有其它依赖插件

android {
    compileSdkVersion 29   //sdk的版本
    buildToolsVersion "29.0.3" //buildTools工具的版本,包含aapt,dx等等
    defaultConfig {
        applicationId "com.example.dhd.myapplication" //程序包名
        minSdkVersion 14 //最小sdk版本,如果设备小于此版本,则无法安装此应用
        targetSdkVersion 29  //sdk版本
        versionCode 1 //应用版本,首次是一,往后一次加1
        versionName "1.0" //版本名字,用户可以在应用详情里面看到的版本号
        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"  //单元测试
    }
    buildTypes {
        //正式版本的配置,应用已经上市使用的配置
        release {
            minifyEnabled false  //是否对代码进行混淆
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])  //配置lib目录下的所有jar包
    implementation 'androidx.appcompat:appcompat:1.1.0'
    implementation 'androidx.constraintlayout:constraintlayout:1.1.3' //配置从中央仓库下载依赖jar包
    testImplementation 'junit:junit:4.12' //定义项目测试代码(test目录下)的依赖
    androidTestImplementation 'androidx.test.ext:junit:1.1.1'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
}

AndroidManifest.xml清单文件

AndroidManifest.xml是每个项目必须需要的,此文件中说明了项目的名称(唯一性),图片,组件(Activity、Service、BroadcastReceiver、ContentProvider),权限等。

<?xml version="1.0" encoding="utf-8"?>
<!--应用包名-->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.dhd.myapplication">
    <!--权限-->
    <uses-permission android:name="android.permission.CAMERA"></uses-permission>
    <!--从上往下依次为
    允许第三方备份此应用数据
    图片
    名字
    圆形图标
    是否支持从右到左的布局,只在api大于17的时候生效
    应用风格
    定义应用中的一个组件,类名为MainActivity
    -->
    <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/AppTheme">
        <activity android:name=".MainActivity">
            <intent-filter>
                <!--指定MainActivity为应用的入口,打开应用默认是此入口-->
                <action android:name="android.intent.action.MAIN" />
                <!--指定加载应用时运行此Activity-->
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

应用权限说明

应用在手机上面运行时,需要获取权限才能够访问系统,比如需要打开相机就需要在AndroidManifest.xml清单文件中添加此
<uses-permission android:name="android.permission.CAMERA"></uses-permission>
权限才可以访问相机
关于权限大全,大家可以去看看这篇博客
点这里
要注意的一点就是在Android6.0以上需要申请权限,6.0以下不需要申请权限,关于申请权限的问题可以参考我的另一篇博客。
点这里

res目录说明

res目录下存放了项目中所用的图片,字符串,颜色,尺寸等资源,将这些资源放在不同的目录下,让aapt工具扫描这些资源进行使用,,并为它们生成相对应的资源R.java。
我们以/res/values/colors.xml文件为例。

<resources>
    <color name="colorPrimary">#008577</color>
    <color name="colorPrimaryDark">#00574B</color>
    <color name="colorAccent">#D81B60</color>
</resources>

这里面定义了三种颜色,当然自己可以自定义一些颜色,使其在整个项目中都可以使用。
使用方法:

<TextView
        android:textColor="@color/colorAccent"
        android:text="重头再来"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content">
    </TextView>

Android应用组件介绍

Android应用是由组件组成的,我们平常看到的界面就是Activity,也就是我们常说的Android四大组件之一,此外还有Service,BroadcasetReceive,ContentProvider等组件。

View

view是所有UI控件的基类,View组件其实就是用户看到的界面,我们需要将组件放在Activity里面,并通过 setContentView(R.layout.activity_main);显示出来。

Activity

activity就是与用户进行交互的组件,用户看到的界面都是Activity,Activity需要继承Activity基类使用。

Service

Service与Activity并列,Service一般是在后台运行,不与用户进行交互,Service需要继承Service基类使用,有不同于Activity的生命周期,Service一般用于后台服务或者监控其它组件的运行状态。

BroadcasetReceive

BroadcasetReceive也是比较重要的一个组件,它代表广播接收器,类似于监听用户的点击事件,例如如果实现了开机广播监听,当Android系统启动的时候,可以监听到开机广播,进行App的开机自启动。

ContentProvider

ContentProvider是相互独立运行的,各自运行在独立的进程中。ContentProvider一般与ContentResolver结合使用。举个例子,当我们使用发送短信的时候,我们需要获取手机联系人,通讯录使用ContentResolver暴露数据,而短信使用ContentProvider接收联系人数据。

apk签名

当我们写好一个应用时,我们需要发布正式版的apk,这个时候我们就需要对apk进行签名处理。
有时候我们测试apk的时候,可以不进行签名,直接使用如下图方案将apk包打包为debug模式。
在这里插入图片描述
当我们需要签名的时候可以按照下面步骤进行签名处理
在这里插入图片描述
选择apk,点击Next
在这里插入图片描述
如果系统中没有数字证书,需要点击Create new…填写数字证书在这里插入图片描述
数字证书如下进行填写。
在这里插入图片描述
填写完之后会返回到上一个界面,点击Next,出现如下图
在这里插入图片描述
选择replace,下方的v1和v2至少选择一个,
如果只勾选v1,在Android7.0以上不会应用新的签名方式。如果只勾选V2,Android7.0以下的机子将无法安装APK! 建议,两个都勾选上去。
选好之后,点击Finish,稍等片刻,即可在replace文件夹中找到打包好的apk。

结束语

到这里先结束了,有空再补充,如果有错误,欢迎提出来!

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值