Android_day01_第一章

分析第一个Android程序


Android模式的项目结构

Android模式的项目结构

  1. .gradle和.idea
    Android Studio自动生成文件
  2. app
    项目中的代码、资源等内容几乎都在这个目录下。
  3. build
    包含一些在编译时自动生成的文件。
  4. gradle
    包含了gradle wrapper的配置文件。
  5. .gitignore
    将指定的目录或文件排除在版本控制之外。
  6. build.gradle
    项目全局的gradle构建脚本,通常这个文件中的内容是不需要修改的。
  7. gradle.properties
    是全局的gradle配置文件,在这里配置的属性将会影响到项目中所有的gradle编译脚本。
  8. gradlew和gradlew.bat
    用来在命令行界面中执行gradle命令的。gradlew是在Linux或Mac系统中使用的,gradlew.bat是在Windows系统中使用的
  9. HelloWorld.iml
    IntelliJ IDEA项目自动生成的一个文件。
  10. local.properties
    用于指定本机中的Android SDK路径,通常内容都是自动生成的,不需要修改。如果本机的SDK路径发生变化,将这个文件中的路径修改为新的路径。
  11. settings.gradle
    这个文件用于指定项目中所有引入的模块。

详细分析app目录

详细分析app目录
1. build
这个目录和外层的build目录类似,主要包含了一些在编译时自动生成的文件,但这个目录的内容更复杂。
2. libs
需要用到的第三方jar包放在libs目录下,会被自动添加到构建路径里去。
3. src/android Test
此处是用来编写Android Test测试用例的,可以对项目进行一些自动化测试。
4. src/main/java
放置所有Java代码的地方。
5. src/main/res
项目中使用到的所有图片、布局、字符串等资源都要存放在这个目录下。图片放在drawable目录,布局放在layout目录下,字符串放在value目录下。
6. src/main/AndroidManifest.xml
整个Android项目的配置文件,程序中定义的所有四大组件都需要在这个文件里注册,还可以给应用程序添加权限声明。
7. src/test
用来编写Unit Test测试用例,是对项目进行自动化测试的另一种方式。
8. .gitinore
将app模块内的指定的目录或文件排除在版本控制之外,作用和外层的.gitinore文件类似。
9. app.iml
IntelliJ IDEA项目自动生成的文件。
10. build.gradle
app模块的gradle构建脚本,指定很多项目构建相关的配置。
11. proguard-rules.pro
指定项目代码的混淆规则。

详解项目中的资源

res目录

详解项目中res目录 的资源
- 所有以drawable开头的的文件夹都是用来存放图片的。
- 所有以mipmap开头的文件夹都是用来存放应用图标的。
- value文件夹用来存放字符串、样式、颜色等配置的。

调用values的资源

string.xml文件中定义app的名称

<resources>
    <string name="app_name">HelloWorld</string>
</resources>

引用定义的app名称方法:
- 在代码中:R.string.app_name
- 在xml中:@string/app_name

调用其他资源方式类同,引用图片资源把string替换成drawable,引用图标则替换成mipmap,引用布局文件则替换成layout。可查看在AndroidManifest.xml中的用法:

 <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">
        ···
    </application>

详解build.gradle文件 ##

  • Android Studio采用Gradle来构建项目。Gradle是一种基于Groovy的领域特定语言(DSL)来声明项目设置,摒弃了传统基于XML的各种繁琐配置。

  • build.gradle一个位于最外层目录下,一个位于app目录下。

外层目录下的build.gradle文件 ###

buildscript {

    repositories {
        google()
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.0.0'
    }
}

allprojects {
    repositories {
        google()
        jcenter()
    }
}
  • jcenter()代码托管仓库,很多Android开源项目都会选择将代码托管到jcenter上,声明了这行配置之后,可以在项目中轻松引用任何jcenter上的开源项目。

  • classpath 'com.android.tools.build:gradle:3.0.0'代表Gradle插件版本号。

app目录下的build.gradle文件

apply plugin: 'com.android.application'

android {
    compileSdkVersion 26
    defaultConfig {
        applicationId "com.example.myfzhou.helloworld"
        minSdkVersion 14
        targetSdkVersion 26
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'com.android.support:appcompat-v7:26.1.0'
    implementation 'com.android.support.constraint:constraint-layout:1.0.2'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.1'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
}
  1. apply plugin
    一个插件,有两个值可选
    • com.android.application :表示这是一个应用程序模块,可直接运行;
    • com.android.library :表示这是一个库模块,只能作为代码库依附于别的应用程序模块来运行。
  2. android闭包
    • compileSdkVersion :指定项目的编译版本;
    • buidToolsVersion :指定项目构建工具的版本(书本项目有该段代码)。
  3. defaultConfig闭包
    • applicationId :指定项目的包名;
    • minSdkVersion :指定项目最低兼容Android系统版本;
    • targetSdkVersion :表示在该目标版本上已经做过了充分的测试,系统将会为你的应用程序启用一些最新的功能特性;
    • versionCode :指定项目的版本号;
    • versionName :指定项目的版本名。
  4. buildTypes闭包
    该闭包中用于指定生成安装文件的相关配置,通常只会有两个子闭包,一个是debug,一个release。
    • debug闭包:用于指定生成测试版安装文件的配置,该闭包可以忽略不写;
    • release闭包:用于指定生成正式版安装文件的配置。
      • minifyEnabled :用于指定是否对项目的代码进行混淆,true表示混淆,false表示不混淆;
      • proguardFiles :用于指定混淆时使用的规则文件,这里指定了两个文件:
        • proguard-android.txt 是在Android SDK目录下,里面是所有项目通用的混淆规则;
        • proguard-rules.pro 是在当前项目的根目录下,里面可以编写当前项目特有的混淆规则。
  5. dependencies闭包
    这个闭包功能十分强大,可以指定当前项目所有的依赖关系,Android Studio项目一共有3中依赖关系:
    • 本地依赖implementation fileTree(dir: 'libs', include: ['*.jar']):可以对本地的jar包或项目添加依赖关系;
    • 库依赖implementation 'com.android.support:appcompat-v7:26.1.0':可以对项目中的库模块添加依赖关系;
    • 远程依赖:可以对jcenter库上的开源项目添加依赖关系。

日志工具的使用

Android的日志工具Log

  1. Log.v() :用于打印那些最为琐碎的、意义最小的日志信息,对应级别是verbose;
  2. Log.d() :用于打印一些调试信息,对应级别是debug;
  3. Log.i() :用于打印一些比较重要的数据,可以分析用户行为数据,对应级别是info;
  4. Log.w() :用于打印一些警告信息,提示程序在这个地方可能会有潜在的风险,最好去修复以下这些出现警告的地方,对应级别是warn;
  5. Log.e() :用于打印程序中的错误信息,比如程序进入到了catch语句当中,当有错误信息打印出来时候,一般都代表你的程序出现严重问题了,必须尽快修复,对应级别error。
tips

在onCreate()方法的外面输入logt,然后按下Tab键,就会以当前的类名作为值,自动生成一个TAG常量。之后在方法里只需要输入Log+方法名,按下Tab键,即可快速输入日志输出。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
东南亚位于我国倡导推进的“一带一路”海陆交汇地带,作为当今全球发展最为迅速的地区之一,近年来区域内生产总值实现了显著且稳定的增长。根据东盟主要经济体公布的最新数据,印度尼西亚2023年国内生产总值(GDP)增长5.05%;越南2023年经济增长5.05%;马来西亚2023年经济增速为3.7%;泰国2023年经济增长1.9%;新加坡2023年经济增长1.1%;柬埔寨2023年经济增速预计为5.6%。 东盟国家在“一带一路”沿线国家中的总体GDP经济规模、贸易总额与国外直接投资均为最大,因此有着举足轻重的地位和作用。当前,东盟与中国已互相成为双方最大的交易伙伴。中国-东盟贸易总额已从2013年的443亿元增长至 2023年合计超逾6.4万亿元,占中国外贸总值的15.4%。在过去20余年中,东盟国家不断在全球多变的格局里面临挑战并寻求机遇。2023东盟国家主要经济体受到国内消费、国外投资、货币政策、旅游业复苏、和大宗商品出口价企稳等方面的提振,经济显现出稳步增长态势和强韧性的潜能。 本调研报告旨在深度挖掘东南亚市场的增长潜力与发展机会,分析东南亚市场竞争态势、销售模式、客户偏好、整体市场营商环境,为国内企业出海开展业务提供客观参考意见。 本文核心内容: 市场空间:全球行业市场空间、东南亚市场发展空间。 竞争态势:全球份额,东南亚市场企业份额。 销售模式:东南亚市场销售模式、本地代理商 客户情况:东南亚本地客户及偏好分析 营商环境:东南亚营商环境分析 本文纳入的企业包括国外及印尼本土企业,以及相关上下游企业等,部分名单 QYResearch是全球知名的大型咨询公司,行业涵盖各高科技行业产业链细分市场,横跨如半导体产业链(半导体设备及零部件、半导体材料、集成电路、制造、封测、分立器件、传感器、光电器件)、光伏产业链(设备、硅料/硅片、电池片、组件、辅料支架、逆变器、电站终端)、新能源汽车产业链(动力电池及材料、电驱电控、汽车半导体/电子、整车、充电桩)、通信产业链(通信系统设备、终端设备、电子元器件、射频前端、光模块、4G/5G/6G、宽带、IoT、数字经济、AI)、先进材料产业链(金属材料、高分子材料、陶瓷材料、纳米材料等)、机械制造产业链(数控机床、工程机械、电气机械、3C自动化、工业机器人、激光、工控、无人机)、食品药品、医疗器械、农业等。邮箱:market@qyresearch.com
完整版:https://download.csdn.net/download/qq_27595745/89522468 【课程大纲】 1-1 什么是java 1-2 认识java语言 1-3 java平台的体系结构 1-4 java SE环境安装和配置 2-1 java程序简介 2-2 计算机中的程序 2-3 java程序 2-4 java类库组织结构和文档 2-5 java虚拟机简介 2-6 java的垃圾回收器 2-7 java上机练习 3-1 java语言基础入门 3-2 数据的分类 3-3 标识符、关键字和常量 3-4 运算符 3-5 表达式 3-6 顺序结构和选择结构 3-7 循环语句 3-8 跳转语句 3-9 MyEclipse工具介绍 3-10 java基础知识章节练习 4-1 一维数组 4-2 数组应用 4-3 多维数组 4-4 排序算法 4-5 增强for循环 4-6 数组和排序算法章节练习 5-0 抽象和封装 5-1 面向过程的设计思想 5-2 面向对象的设计思想 5-3 抽象 5-4 封装 5-5 属性 5-6 方法的定义 5-7 this关键字 5-8 javaBean 5-9 包 package 5-10 抽象和封装章节练习 6-0 继承和多态 6-1 继承 6-2 object类 6-3 多态 6-4 访问修饰符 6-5 static修饰符 6-6 final修饰符 6-7 abstract修饰符 6-8 接口 6-9 继承和多态 章节练习 7-1 面向对象的分析与设计简介 7-2 对象模型建立 7-3 类之间的关系 7-4 软件的可维护与复用设计原则 7-5 面向对象的设计与分析 章节练习 8-1 内部类与包装器 8-2 对象包装器 8-3 装箱和拆箱 8-4 练习题 9-1 常用类介绍 9-2 StringBuffer和String Builder类 9-3 Rintime类的使用 9-4 日期类简介 9-5 java程序国际化的实现 9-6 Random类和Math类 9-7 枚举 9-8 练习题 10-1 java异常处理 10-2 认识异常 10-3 使用try和catch捕获异常 10-4 使用throw和throws引发异常 10-5 finally关键字 10-6 getMessage和printStackTrace方法 10-7 异常分类 10-8 自定义异常类 10-9 练习题 11-1 Java集合框架和泛型机制 11-2 Collection接口 11-3 Set接口实现类 11-4 List接口实现类 11-5 Map接口 11-6 Collections类 11-7 泛型概述 11-8 练习题 12-1 多线程 12-2 线程的生命周期 12-3 线程的调度和优先级 12-4 线程的同步 12-5 集合类的同步问题 12-6 用Timer类调度任务 12-7 练习题 13-1 Java IO 13-2 Java IO原理 13-3 流类的结构 13-4 文件流 13-5 缓冲流 13-6 转换流 13-7 数据流 13-8 打印流 13-9 对象流 13-10 随机存取文件流 13-11 zip文件流 13-12 练习题 14-1 图形用户界面设计 14-2 事件处理机制 14-3 AWT常用组件 14-4 swing简介 14-5 可视化开发swing组件 14-6 声音的播放和处理 14-7 2D图形的绘制 14-8 练习题 15-1 反射 15-2 使用Java反射机制 15-3 反射与动态代理 15-4 练习题 16-1 Java标注 16-2 JDK内置的基本标注类型 16-3 自定义标注类型 16-4 对标注进行标注 16-5 利用反射获取标注信息 16-6 练习题 17-1 顶目实战1-单机版五子棋游戏 17-2 总体设计 17-3 代码实现 17-4 程序的运行与发布 17-5 手动生成可执行JAR文件 17-6 练习题 18-1 Java数据库编程 18-2 JDBC类和接口 18-3 JDBC操作SQL 18-4 JDBC基本示例 18-5 JDBC应用示例 18-6 练习题 19-1 。。。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值