Android Studio 使用笔记

1. 项目相关

保持开发人员IDE版本一致
IDE统一编码格式为UTF-8

包名分类

名称备注
activity我们按照模块继续拆分,将不同模块的 Activity 划分到不同的包下。 比如 LoginActivity 等等;
fragment和activity差不多
adapter所有适配器都放在一起。
entity将所有的实体都放在一起。 有相应的setter和getter方法。entity(实体类)的作用一般是和数据表做映射,JSON数据类.Entity 也是这个样子,Entity 中应该只有属性,否则就不叫Entity。只是当 Entity 有上百 个时,就需要考虑按照模块划分。
dbSQLLite 相关逻辑的封装。
engine将业务相关的类都放在一起。
ui将自定义控件都放在这个包中。
utils将所有的公用方法都放在这里。
interfaces真正意义上的接口,命名以 I 作为开头。
listener基于 Listener 的接口,命名以 On 作为开头。
extensions扩展函数

注释

TODO 需要实现,目前未实现的
FIXME 功能代码有问题,需要修复说明的

Checkstyle

版本控制

res/layouts 分包

当 res/layout 的 xml 比较多,散乱的话,可以处理下
在这里插入图片描述
没有问题,通过设置,可以变的更直观
在这里插入图片描述
第一步:右键单击项目的 res,选择 New -> Directory,命名为 layouts,避免重复.
第二步:选择 layouts 目录,右键单击选择 New -> Folder -> Res Folder,比如命名为 home, chat… .
第三步:添加 layout 布局目录(就像Android的 res/layout)
最后一步:修改 Gradle 脚本,app/build.gradle

sourceSets {
    main {
        res.srcDirs = ['src/main/res',
                       'src/main/res/layouts/chat',
                       'src/main/res/layouts/home',
                       'src/main/res/layouts/profile'
        ]
    }
}

解决导入 jar 与 aar 的冲突问题


2. 编译,运行和调试,性能

分析崩溃的堆栈信息

将崩溃信息复制,点击Analyze菜单,选择 Analyze Stack Trace,在这里插入图片描述
就会显示下面的内容,就可以点击到的具体位置进行分析
在这里插入图片描述

关联调试某个运行的APP

考虑两种情况:

  • 机器 上运行的 某个版本或者xxxx 的应用出现了问题,重新 Run 成本太大。
  • 某个 第三方的APP,无法编译项目。

这个时候,只要有代码 就行.
Android Studio 菜单栏->Run->Attach Debugger to Android Process
或者点击工具栏的图标也可以
在这里插入图片描述
选择你需要调试的某个APP,点击 show all processes 可以显示很多正在运行的
在这里插入图片描述
点击后,会显示下面的界面
在这里插入图片描述
在代码打上断点,就可以进行调试了
在这里插入图片描述

签名

系统签名(platform.x509.pem 与 platform.pk8),如何导出到Android Studio 签名APK;

openssl pkcs8 -inform DER -nocrypt -in platform.pk8 -out platform.pem
openssl pkcs12 -export -in platform.x509.pem -out platform.p12 -inkey  platform.pem -password pass:123456 -name android
keytool -importkeystore -deststorepass 123456 -destkeystore ./platform.jks -srckeystore ./platform.p12 -srcstoretype PKCS12 -srcstorepass 123456

debug {
	storeFile file("../platform.jks")
	storePassword "123456"
	keyAlias "android"
	keyPassword "123456"
}

优化加速

# 提升 JVM 的堆内存
org.gradle.jvmargs=-Xmx1536m
# 配置 可用内存

性能检测相关


3. grlade相关

grlade下载地址

名称备注
API类似于 compile,编译时依赖和运行时依赖,支持依赖传递
Implementation不支持依赖传递,底层Module无法访问上层Module依赖的库
CompileOnly类似于provided,仅仅在编译时进行依赖,不会将依赖打包到APP中
RuntimeOnly类似于APK,它仅仅将依赖打包到APK中,但在编译时无法获得依赖的类
AnnotationProcessor类似于apt,是注解处理器的依赖
Test ImplementationJava测试库的依赖,仅仅在测试环境中生效
AndroidTestImplementationAndroid 测试库依赖,仅仅在测试环境中生效
[Flavor]+Api仅对某个Flavor的依赖,写法是:Flavor+名称+依赖的方式
// api和compile关键字作用效果是一样的,在高版本的gradle,使用compile关键字会报错并提示使用api关键字代替
api 'com.android.support:appcompat-v7:26.1.0'
compile 'com.android.support:appcompat-v7:26.1.0'
api ('com.android.support:appcompat-v7:26.1.0') {
	transitive = true; // true 支持传递依赖, false关闭传递依赖
}
api("com.afollestad.material-dialogs:core:0.9.5.0") {
	exclude group: 'com.android.support' // 删除 group 指定的module
}

// 同一个模块下,使用效果一样的.
// 不同模块会有区别,比如 App 的 moduleA 使用下面的配置,app 引用 moduleA 后,
// implementation关键字的appcompat-v7包无法在app module中使用
// 使用compile关键字的design包则可以使用
implementation 'com.android.support:appcompat-v7:26.1.0' 
compile 'com.android.support:design:26.1.0'

// compileOnly经常用于解决依赖冲突等问题,一般第三方库中,比较常用的依赖,如support、gson、Eventbus等等
compileOnly 'com.android.support:cardview-v7:26+'

implementation 'com.jakewharton:butterknife:8.8.1'
annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.1'

// 测试库
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'

组合依赖:相关库成为了一组,删除,添加都很方便

implementation([
	'io.reactivex.rxjava2:rxjava:2.0.1',
	'io.reactivex.rxjava2:rxandroid:2.0.1'
])

依赖管理:项目的库越多,变得难以管理,统一进行管理

// 根目录建议一个文件 xxx.gradle
ext {
	android = [
		compileSdkVersion = 28
    	buildToolsVersion = "28.0.3"
    	minSdkVersion = 21
    	targetSdkVersion = 28
	]
	
	dependencies = [
		"appcompat":"com.android.support:appcompat-v7:26.1.0"
	]
}

// 引用的 build.gradle 中加入 xxx.gradle
apply from:"xxx.gradle"

// 引用
android {
	compileSdkVersion rootProject.ext.android.compileSdkVersion
    buildToolsVersion rootProject.ext.android.buildToolsVersion

	defaultConfig {
		minSdkVersion rootProject.ext.android.minSdkVersion
        targetSdkVersion rootProject.ext.android.targetSdkVersion
	}
}

dependencies {
	implementation rootProject.ext.dependencies["appcompat"]
}

4. 插件—效率提升

插件名称备注
ADB IdeaADB工具
Material UI Theme主题颜色
Rainbow Brackets圆括号,方括号和大括号 颜色
Butterknife ZeleznyButterknife 快捷导入
Alibaba Java Coding Guidelines阿里巴巴Java开发规约
Git Commit Templategit commit 提交模板 插件

ADB Idea

ADB Idea提供了单击快捷方式命令,用于启动,卸载,终止应用程序,撤消权限以及清除应用程序数据。
Android 4.0以上为例,Tools->ADB Idea,就可以看到使用菜单
在这里插入图片描述

Material UI Theme

使用教程
在这里插入图片描述

Rainbow Brackets

确实解决了程序员的痛点,就是 嵌套 或 多个 括号 不好查找定位;
这个插件使用了颜色 将 圆括号,方括号和大括号以颜色标注,清晰明了;
在这里插入图片描述

Butterknife Zelezny

Alibaba Java Coding Guidelines

在这里插入图片描述
使用方式,点击 编码规约扫描,就会列出所有不规范的地方
在这里插入图片描述 在这里插入图片描述 在这里插入图片描述

Git Commit Template

在这里插入图片描述

5. Settings设置相关

类注释模板

Settings->Editor->File and Code Templates
在这里插入图片描述

/**
 *
 * @Author: hailong.qiu 356752238@qq.com
 * @Maintainer: hailong.qiu 356752238@qq.com
 * @Date: ${DATE}
 * @Copyright: ${YEAR} www.andriodtvdev.com Inc. All rights reserved.
 */

自动导包

在这里插入图片描述
有时候需要手动导包,确实很麻烦,自动导包就能很方便的解决此问题.
在这里插入图片描述

Code Style

这里推荐 Square Android Code Style
或者 使用 grandcentrix.xml
在这里插入图片描述
使用 Import Scheme 导入 SquareAndroid.xml,最后选择 Copy to Project…,避免每次重复导入.

当输入变量的时候,没有提示的话可以这么改.

  • 非共有,非静态的成员变量以’m’
  • 开始静态成员变量以’s’开始
    在这里插入图片描述
    如果感觉Tab与缩进不舒服,可以更改下
    在这里插入图片描述
    如果函数的排序不是按照临近来的,可以更改下
    在这里插入图片描述

如果发现代码格式化,变量之间有空格,可以更改
在这里插入图片描述
最后需要注意

通过快捷键 Ctrl + Alt + Shift + L 可以打开配置 dialog,勾选以下内容
Optimize imports:优化导入
Rearrange code :重新排列代码

一些异常问题处理

Build Output 乱码问题

打开Android Studio目录下的 studio64.exe.vmoptions,加入这行 -Dfile.encoding=UTF-8

### 回答1: Android Studio是Google推出的Android应用程序开发工具,它集成了开发、调试、打包等功能。要学习使用Android Studio,需要了解以下几个方面的知识: 1. Java基础: Android开发是基于Java语言的,所以要学习Android Studio首先要掌握Java基础知识。 2. Android基础: 了解Android操作系统的基本构架和常用组件,如Activity、Service、BroadcastReceiver等。 3. Android Studio使用: 了解Android Studio的基本界面和常用功能,如创建工程、编写代码、调试程序等。 4. Android SDK: 了解Android SDK的安装和配置,以及如何使用SDK Manager来下载SDK并配置项目。 5. 练习实践: 多练习实际项目,熟悉Android Studio使用,并不断练习和完善自己的技能。 ### 回答2: Android Studio 是一个为 Android 来开发的整体开发环境。它基于 IntelliJ IDEA ,强调速度和智能操作,并致力于为应用程序开发提供高效率的开发工具。Android Studio 的推出,使得 Android 开发者更加容易地创建高质量的应用程序。 首先,要学 Android Studio ,你需要首先了解一些基本知识。学习 Android Studio 的工具包括 Gradle 、 Kotlin 和 Java 等。通过学习这些基础知识,你可以了解不同的语言、工具和框架。 在学习 Android Studio 时要使用实战性的方法。也就是说,每次学习新的东西时,你需要找到一个相关的例子。这样可以帮助你更好地理解它。如果你使用 Android Studio 模板,这将非常有用。这些模板可以帮助你创建常见的应用程序结构,并且你可以基于这些模板创建自己的应用程序。 另外,还有很多不同的工具和插件可以帮助你学习 Android Studio 。例如, Android Studio 网站上有很多有用的文章和教程,可以帮助你更好地理解 Android Studio 。还有很多在线工具可以帮助你实现特定的功能,在初学者阶段,这些工具可以为学习的难度减轻很多。 总之,学习 Android Studio 任重而道远。需要有耐心和时间,还需要不断地尝试和实践。在这个过程中,你可以尝试教学资料、交流学习合作、进一步增强你的知识水平。通过不断的应用和实践,一定可以成为一名优秀的 Android 开发者并圆满地完成应用开发。 ### 回答3: 作为一个应用开发者,学习使用安卓应用程序开发套件非常重要。Android Studio是Google出品的最新安卓开发工具,它具有多种强大的工具和功能,可以极大地提高应用程序的开发效率和质量。在学习过程中,个人对Android Studio的理解主要体现在以下几个方面。 首先,要开始使用Android Studio,需要了解它的基本结构和工具。Android Studio主要由三个主要组件组成:IDE、SDK、和Emulator。IDE是开发者使用的主要工具。它提供了编写、测试和调试代码所需的所有基本功能,包括视觉化设计器,代码编辑器和调试工具。SDK是开发应用程序所需的软件开发包。它包括实用程序和库,可用于在应用程序中实现预定功能。Emulator是一个虚拟的安卓设备,可以用来在开发应用程序时模拟真实设备上的应用程序运行情况。 其次,一些基本的编程知识也必不可少,例如Java编程、XML语言、UI界面设计等。Java是Android Studio中最常用的编程语言,用于编写应用程序的逻辑代码;XML语言则用于设计UI界面。在学习这些基本知识时,建议首先了解Java语言特性和面向对象编程理念,熟悉它们的基本语法和数据类型。同时,也可以通过在线教程和网课等方式加强对UI设计和布局的理解。 最后,学会使用网上的资源和社区的帮助非常重要。Android Studio的开发者社区很大,有很多在线资源可以帮助开发者的开发学习,例如stack overflow、CSDN社区等。同时,Google官方的开发者网站也提供了大量的文档资料、教程、API使用说明等。 总之,Android Studio的学习需要进行持续不断的针对不同方面的学习和实践。要充分运用Android Studio的强大功能,建议在掌握基础知识的基础上,多做实际的项目练习,不断提高自己的技术水平和代码能力,才能成为一名优秀的安卓应用程序开发者。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值