关于Android Studio

Android Studio

Android Studio(AS) 介绍

  1. 学习的必要性
原因说明
发展趋势google公司把官方IDE工具定位AS,并停止了EclipseADT的维护
工作越来越多的公司在使用AS作为开发工具
学习Github上越来越多的android开源项目是AS开发的

安装

  1. 安装需求

    • JDK 1.7
    • 2G空闲内存
    • 500M磁盘空间
  2. 安装方式

    • 解压IDE工具(推荐)
    • 安装IDE工具
    • 安装IDE+SDK+AVD
  3. 运行

    • 32 位运行android-studio\bin\studio.exe
    • 64 位运行android-studio\bin\studio64.exe
  4. 配置

    • AS的android插件会尝试下载SDK更新,因国内网络问题,会导致下载失败无法启动程序

初次运行无法进入程序(网络问题,无法下载SDK更新)
在 AS安装目录/bin/idea.properties最后添加
disable.android.first.run=true

  1. 常见问题
    tools.jar缺失,或其他的jar缺失
    原因:jdk没有安装好。
    解决:卸载当前jdk、删除java环境变量;重启;安装正确的jdk,配置环境变量

建立HelloWorld项目

  • 重要概念
中文EclipseAS
工作空间WorkSpaceProject
工程(库或应用)ProjectModule

As中强调应该把相关的工程放在同一个工作空间中

编译过程

见图 build.png

gradle及相关文件

所属文件类型作用
Project.gradle文件夹配置文件,无需更改、关注
Projectgradle文件夹包含了gradle-wrapper相关文件,无需更改、关注
Projectbuild.gradle文件构建Project的配置,如idea的gradle插件、中央仓库信息等
Projectgradle.properties文件gradle启动的配置,如java虚拟机的内存占用等,一般无需修改
Projectgradlew/gradlew.bat文件初始化gradle相关变量的脚本
Projectsettings.gradle文件本project下有哪些module
Modulebuild.gradle文件!!!重要:打包apk的相关信息(包名、版本、依赖等)
  • module中的build.gradle详细说明

// 表示这个项目编译完成后,是一个anrdoid应用程序
apply plugin: 'com.android.application'
// 表示这个项目编译完成后,是一个anrdoid的库
//apply plugin: 'com.android.library'

android {
	// 编译的sdk版本,见sdk\platforms
    compileSdkVersion 23
    // 构建工具的版本,见sdk\build-tools
    buildToolsVersion "23.0.1"

    defaultConfig {
    	// 包名:用于在市场上区分应用的唯一性的标示
        applicationId "cn.itcast.as.helloworld"
        // 最小sdk版本、目标sdk版,原先是放在清单文件中的
        minSdkVersion 15
        targetSdkVersion 23
        // 应用程序的版本号,和版本码,原先是放在清单文件中的
        versionCode 1
        versionName "1.0"
    }
    // 构建类型
    buildTypes {
    	// debug版默认有配置,没有写在这里
    	// 发行版
        release {
        	// 是否混淆
            minifyEnabled false
           	// 混淆配置文件
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

// 关键:项目的依赖
dependencies {
	// 在项目中的libs中的所有的.jar结尾的文件,都是依赖
    compile fileTree(dir: 'libs', include: ['*.jar'])
    // 依赖于junit测试
    testCompile 'junit:junit:4.12'
    // 还依赖于appcompat-v7,23.1.0版本
    compile 'com.android.support:appcompat-v7:23.1.0'
}

AS的界面介绍

见图 界面

Project与Module目录和文件介绍

所属文件类型作用
Project.idea文件夹idea工具的配置,类似eclipse的.metadata文件夹
Projectbuild文件夹构建project的临时、最终数据的存放目录
Project.gitignore文件同步git的忽略文件、文件夹配置,其他版本控制可参考此文件设置忽略
ProjectHelloWorld.iml文件idea的配置信息
Projectlocal.properties文件本机的sdk、ndk存放目录
Modulebuild文件夹构建项目的临时、最终文件存放目录
Modulelibs文件夹放jar包的文件夹
Modulesrc文件夹代码、清单文件、资源的存放目录
Module.gitignore文件同步git的忽略文件、文件夹配置,其他版本控制可参考此文件设置忽略
Moduleapp.iml文件idea的配置信息
Moduleproguard-rules.pro文件混淆配置文件
Modulebuild\outputs\apk文件夹生成的apk文件夹的存放路径
Modulebuild\generated\source\r文件夹各种编译类型下的R文件的存放路径
Modulesrc\main\java文件夹java代码存放路径
Modulesrc\main\AndroidManifest.xml文件清单文件
Modulesrc\androidTest文件夹安卓测试代码存放路径
Modulesrc\test文件夹测试代码存放路径
Modulesrc\main\res文件夹资源存放路径
Modulesrc\main\res\mipmap-*文件夹存放应用的图标的文件夹(会优化)
Modulesrc\main\jni文件夹c或c++的动态链接库(so文件)的存放路径
Modulesrc\main\assets文件夹资产目录
Modulesrc\main\res\raw文件夹原始文件存放路径

AS的主要设置

设置路径常用
程序外观Appearance & Behavior --> AppearanceTheme主题;Name、Size 字体样式和大小
编码区域外观Editor–> General --> AppearanceShow line numbsers 显示行号 ; show method separators 方法分割符;Show right margin右边界限
编码区域字体大小Editor–> Color & Font --> FontPrimary font 字形; size 字号;line space 行距;(先save as,保存自己的配置,才能修改)
编码格式Editor --> File EncodingsIDE Endoding;Project Encoding ;Default encoding for properties files; 都设置成utf-8
代码提示大小写Editor–> General --> Code CompletionCase Sensitive completion 设置为none,在键入时,可不区分大小写进行提示(提示内容最多)
logcat颜色Editor --> Colors& Fonts --> Android Logcat选中对应级别的日志,可修改颜色(先取消勾选 Use inherited attributes)

快捷键

  1. 快捷键方案
    settings --> keymap

  2. 查找和修改快捷键
    以意找键
    以键找意

  3. 活动模板
    settings --> Editor --> Live Templates
    通过缩写完成代码
    如何自定义logmp,把方法名作为tag,把方法参数作为msg
    快捷键使用场景;变量定义

  4. 后缀补全
    settings --> Editor --> General --> Postfix Completion
    强大的功能,书写代码更加自然,但无法自定义

  5. 重要、常用快捷键

作用快捷键
打开视窗alt + 带下划线的字母或数字
格式化ctrl + alt + L
复制ctrl +D
删除ctrl + Y
代码生成alt + insert
快速修复错误alt + enter
提取成员变量ctrl + alt + F
提取局部变量ctrl + alt + V

调试

  1. 进入调试的两种方式
    1. 以调试模式运行,小虫子
    2. 在运行时开始调试,小虫子左边第二个按钮
  2. 4种断点类型
    1. 行断点
    2. 方法断点
    3. 成员变量断点
    4. 异常断点
  3. 调试快捷键
意义快捷键
放行(在下一个断点停下)F9
执行一行F8
钻入方法F7
钻出方法Shfit + F8

Module的导入

  1. 导入Eclipse项目
    File --> New --> Import Module
  2. 导入AS项目
    File --> New --> Import Module
  3. 导入AAR
    File --> New --> New Module --> Import .jar/.aar package

AS的依赖管理

  1. 依赖的三种模式
    • 文件
    • 远程

插件管理

  1. 插件安装的两种方式
    1. 本地文件
    2. 远程下载
  2. 常用插件
    • genymotion 可在as中启动genymotion模拟器
    • butterknife-zelezny 可配合butterknife依赖,完成“一键findViewById”

打包发布的APK

build --> Generate Signed APK

  1. 生产签名文件
  2. 打包

代码混淆

  1. 概念

减小apk的大小(删除无用的类,替换类名、变量、方法名为短名称)
降低反编译后的代码可读性

  1. 开启或关闭混淆
    build.gradle 中 设置minifyEnabled true

  2. 系统混淆配置说明

  3. 项目特有混淆配置
    添加到 proguard-rules.pro中

  4. 第三方类库使用混淆配置
    一般来说,第三方类库都会说明如何配置混淆文件

  5. 常用混淆配置(可记忆)

配置说明
-keep class package.name.Klass {*;}特定的类不被混淆
-keep class package.name.** {*;}某个包下的类不被混淆
-keep class * extends java.lang.annotation.Annotation { *; }继承与某类的类不被混淆
  1. 面试题:为什么四大组件没有配置不混淆但是没有被混淆

aapt工具生成混淆配置时,检查了清单文件,生成了混淆配置文件(在打包的module目录的 build\intermediates\proguard-rules\release\aapt_rules.txt),对于四大组件没有混淆

多APK打包

  • 意义

为不同的市场,或不同客户提供不同的apk。

  • 操作步骤
    1. 在project structure中建立多个flavor
    2. 在build.gradle中在多个flavor中添加配置,比如manifestPlaceholders = [CITY :“深圳”]

    其中 CITY是键,"深圳"是值

    1. 在打包apk时,就会替换清单文件中的${CITY}的内容为"深圳",可在清单文件中添加metadata标签
    2. 在代码中获取清单文件中的值

    通过packagemanager获取

版本控制,以SVN为例

SVN环境

  • 安装TortoiseSVN

!!! 注意勾选 command line client tools

  • 在as中,设置svn的命令行工具

settings --> Version Control --> Subversion -->General --> use command line client
选中TortoiseSVN的安装目录中的bin文件夹中的svn.exe

上传本地代码

  • 设置同步
    settings --> Version Control
    把project后面加上版本控制的类型

  • 设置忽略文件
    settings --> Version Control --> Ignored Files
    3种方式:特定文件、指定目录下的文件、特定规则文件

  • 提交目录

project 右键 --> Subversion --> share directory
这一步只提交了目录,文件并没有上传

  • 上传文件

project 右键 --> Subversion --> submit directory

下载服务代码

在Welcome to Android Studio界面,点击第三个Check out project from Version Control

如果要求选择gradlle home,则选中用户目录下的(类似文件夹) .gradle\wrapper\dists\gradle-2.4-all\6r4uqcc6ovnq6ac6s0txzcpc0\gradle-2.4

提交代码,编辑冲突

project 右键 --> Subversion --> submit directory

好习惯:先update,再submit

  • 冲突的解决
    3种 接受服务器的,接受自己的,合并
英文含义
Accept Theirs用服务器的覆盖本地的
Accept Youts用本地的覆盖服务器的
Merge查看服务器和本地的,最终决定提交的内容

!!! 注意,在合并后,还需要submit

断开连接

  • 断开连接

    1. 先删除配置
      在settings --> version control -掉同步文件夹
    2. 再删除文件
      删除.svn文件夹
  • 忘记记录的用户名和密码
    settings --> version control --> subversion -->clear auth cache

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值