AndroidStudio项目导入的那些事

公司有一个老项目,曾经因为市场的原因搁置了,最近重新探究决定重启该项目,当然开发任务就由我来主持负责。拿到老项目第一件事,不用说就是先将老项目导入到开发环境中,然后看看具体架构和业务,该抛弃的抛弃该优化的优化。

工欲善其事,必先利其器

对于AndroidStudio的安装和使用在这里顺便也重申一下,有些童鞋喜欢重装这些开发环境,用以时常给自己冲冲血,一般不是大变化建议还是不用太频繁安装为好,毕竟开发才是首要任务。

第一次启动AndroidStudio很慢

Android第一次启动时在某种情况下会发现特别慢,这里的某种情况是多重因素的结合:

  1. 没有梯子。
  2. 宽带不好。
  3. 电脑老旧。

因为AndroidStudio第一次启动时要进行检查SDK更新,所以上边的第一个条件也算是致命点,程序员不会搬梯子有点说不过去,没有梯子到后边启动项目时下载gradle也是个麻烦事。

当然没有梯子可以采用禁止检查SDK更新也能顺利启动,解决办法:
在AndroidStudio安装目录的bin文件夹下找到idea.properties文件,任意记事本工具打开并在文末添加disable.android.first.run=true,然后保存,随后就能顺利启动AndroidStudio了。

idea.propertie文件位置:
禁止检查SDK图0

idea.propertie文件添加禁止SDK检查更新:
禁止检查SDK图1

AndroidStudio运行卡、慢

这个问题有点牵强了,碰到老人机硬性条件怎么处理,我想只能换电脑换硬盘扩内存了吧,这里给的方案是在硬性条件的基础上进一步提升软性条件进而提升性能。

AndroidStudio每次更新从google出厂时,google在AndroidStudio内存开销上会定义一些参数,他认为我们的机器都很棒,所以这些参数相应都不高,然后试试并非如此,哈哈。这些参数在哪儿设置呢?在AndroidStudio安装目录的bin文件下(和上边一样)找到studio.exe.vmoptionsstudio64.exe.vmoptions这两个文件,前一个是针对32位PC的,后者是针对64位的,如果你的电脑是64位只需要将后者内容中的相关参数调大即可。

studio64.exe.vmoptions文件的位置:
AndroidStudio解决卡顿图0

studio64.exe.vmoptions文件内容参数调整实例:
AndroidStudio解决卡顿图1

AndroidStudio常用插件

以下是个人总结的开发过程中常用的插件:

  • GsonFormat
    快速将json字符串转换成一个Java Bean。
  • Android ButterKnife Zelezny
    配合ButterKnife实现注解,从此不用写findViewById。
  • Android Parcelable code generator
    JavaBean序列化,快速实现Parcelable接口。
  • GenerateSerialVersionUID
    实现Serializable序列化bean中的serialVersionUID。
  • Lifecycle Sorter
    可以根据Activity或者fragment的生命周期对其生命周期方法位置进行先后排序,快捷键Ctrl + alt + K。
  • CodeGlance
    在右边可以预览代码,实现快速定位。
  • FindBugs-IDEA
    查找bug的插件,Android Studio也提供了代码审查的功能(Analyze-Inspect Code…)。
  • Material Theme UI
    添加Material主题到你的AS。
  • Markdown Navigator
    Markdown实时预览插件。
  • LayoutFormatter
    一键格式化你的XML文件的Android Studio插件。

AndroidStudio常用快捷键

以下是个人总结的开发过程中常用的快捷键:

ctrl + shift + 空格                    代码补全
ctrl + shift + enter                   语法结构匹配
ctrl +alt + 空格                       代码提示。
ctrl +shift +/                         段注释
ctrl + shift + ?                       xml注释
ctrl + /                               行注释
ctrl + alt + L                         代码格式化
ctrl + alt + O                         格式化类库
alt + enter                            引入库
ctrl + j                               自动代码结构补全
Ctrl+P                                 方法参数提示
shift + F6                             本类或本类中属性、方法重命名
ctrl+shift+r                           全工程内部属性、方法替换
ctrl + shift + u                       大小写转换。 (用于全局或静态变量设定)

/**************搜索**************/
ctrl + f                               类中搜索
双击shift                              全局搜索文件
ctrl + shift +f                        全局任意搜索(有些时候与搜狗输入法冲突,可将输入法相关快捷键给屏蔽掉)
ctrl + N                               搜索类
ctrl + shift + N                       搜索文件
ctrl + shift +alt +N                   搜索方法或变量

/**************代码定位***********/
ctrl + alt + 左方向(右方向)           代码查看时返回上一处,回退下一处。
Alt+ left/right                        切换代码视图
Alt+ Up/Down                           在方法间快速移动定位

/**************移动复制***********/
Ctrl+Shift+Up/Down                     整块代码向上/下移动。(一行,或一个接口实现或一个方法)
ctrl + y                               删除整行。
ctrl + D                               复制该行到下一行。
ctrl +c 、ctrl +v                      整行复制和粘贴

更多官方推荐默认快捷键请移步:
https://resources.jetbrains.com/storage/products/intellij-idea/docs/IntelliJIDEA_ReferenceCard.pdf
或者点击菜单上help按钮下的”Keymap Reference”查看。

项目导入遇到的问题及解决方案

项目导入过程常见的问题有以下几个:

  • 老项目的支持的SDK编译版本在新环境下要重新下载。
  • 兼容包v4或v7在新环境下默认的与SDK编译环境不一致。
  • gradle版本和gradle插件版本不一致,甚至起初并没有gradle环境需要全新支持(eclipse)。
  • 导入过程中网络环境问题。
  • 老项目本身的代码问题,项目中的库在新环境下的兼容问题。

认清几个概念

1.主Module(Module和model不一样,前者指模块,后者指模型,后者主要用于放一些实体类bean)中的build.gradle,先放一张图:
主module下的build.gradle

  • compileSdkVersion
    编译所用的Android SDK Platfom的大版本号,假如此版本号比较低,则编写应用时某些新的方法(Api)不能使用,推荐最新的,时刻屏蔽掉官方准备淘汰的一些API。
  • buildToolsVersion
    项目构建的版本号,即Android SDK Build-Tools的版本号,其大版本号要>=compileSdkVersion,否则不允许构建,推荐在大版本号和compileSdkVersion保持一致同时选择Revision最高的。
  • minSdkVersion
    允许安装此应用的手机系统最低版本号。
  • targetSdkVersion
    目标系统的版本号,假如说设置为Android4.4的版本号(ApiLevel为19),则在Android6.0的系统上安装此应用则不能使用运行时权限。此处结合实际情况设置,推荐采用和compileSdkVersion保持一致的版本号。
  • appcompat-v7
    Android Support支持库,也叫Android兼容包,主要作用能在低版本的Android系统中运行高版本SDK所带来的新特效(特定框架组件、UI元素),目的是全平台视图效果保持一致。末尾大版本号和compileSdkVersion保持一致,保证能够采兼容到全平台,小版本号可参阅官方文档:https://developer.android.com/topic/libraries/support-library/revisions?hl=zh-CN

    Android Support支持库常见是v4和v7(依赖于 v4 支持库),还有v8、v13、v14、v17等。v4库项目引入默认支持,v7最常用,其他的根据实际情况自行添加。注意:Support库的大版本号要与compileSdkVersion的大版本号相同,且所有的库的版本号要相同。

    各类支持库的区别:
    v4:最低支持android1.6,包含ViewPager、Fragment等。
    v7:最低支持android2.3,v7依赖于v4,包含ActionBar、receyclerview等设计支持库(Material Design):提供了一些符合设计风格的控件,比如悬浮操作按钮。
    其他支持库参考:https://developer.android.com/topic/libraries/support-library/features?hl=zh-CN

2.项目中gradle配置:

  • gradle版本
    gradel是androidstudio默认的构建工具,主要用于项目的构建、依赖、打包、发布等,每次androidstudio版本更新时顺带会把gradle版本也进行更新。
  • gradle构建插件版本
    gradle是在maven、ant等前辈构建工具的基础上补齐他们的短板,所运用的平台也不仅仅是android,所以为了更好的服务于android开发,官方根据gradle特定版本范围单独开发一个用于构建android项目的gradle插件。

gradle版本设置:
gradle版本设置

gradle构建插件版本设置:
gradle构建插件版本设置

gradle和gradle构建插件版本对应关系:
gradle和gradle构建插件版本对应关系

更多可参考官方说明:https://developer.android.google.cn/studio/releases/gradle-plugin#updating-plugin

3.SDK Manager中相关:

  • Android SDK Platfom
    Android开发API支持平台,AndroidStudio初次安装时默认会提示下载最新的SDK,强烈推荐下载安装稳定版最新的版本。compileSdkVersion所对应的就是这里已经下载安装过的某个版本号,一般选择的是稳定版最新的。
  • Android SDK Build-Tools
    Android SDK构建工具,包含:aapt工具,aidl工具等。推荐下载安装最新的。buildToolsVersion所对应的就是Android SDK Build-Tools的版本号,一般大版本号和compileSdkVersion保持一致同时选择Revision最高的。
  • Android SDK Platform-Tools
    针对pc端和移动端进行交互的一些工具:比如adb工具(通过该工具pc端获取移动端log信息),sqlite3工具(通过该工具查询移动端数据库信息)。结合实际情况更新。
  • Android SDK Tools
    针对pc平台下使用的工具:比如模拟器,.9patch工具,性能追踪可视化工具traceview。结合实际情况更新。

解决方案

通过对以上概念的认识,导入老项目也就是分分钟的事了,通常做三件事即可:

  • 备好梯子,没有梯子那就做搬运工吧。
  • 主Module中的build.gradle,buildToolsVersion、targetSdkVersion、appcompat-v7大版本号依据compileSdkVersion设置,小版本通过下载选择最新的或者依赖官方最新的(结合情况来),minSdkVersion自己看情况设置。
  • gradle构建插件版本设置结合与gradle版本的关系设置,gradle的版本选择当前市面较新的(结合当前AndroidStudio的版本)。

通过上边的三步一般都能够解决了,其实还有更简单的方法就是新建一个应用,将老项目中的这些参数全部改成和新项目中的一样,哈哈。然后Sync,必要时Clean、Rebuild一下,当然还有代码上的问题还需要慢慢调试解决。

有些时候网络慢的原因也可能是google在作怪,可进入settings>Plugins将google analytic upload插件对勾去除,重启androidstudio.

修改包名便捷方法

有些时候针对老项目包名并不适合,我们需要进行调整,如果单纯想修改项目某个目录的话可以直接重名项目中的某个Package,如果想调整项目应用的包名,除了修改项目整个包名,还要修改项目的applicationId与包名保持一致,这样打包的应用才能算一个全新的应用。

两步走:
1.AndroidManifest修改项目包名
修改包名

2.主Module中的build.gradle中修改applicationId,并Sync。
修改applicationId

以上是针对项目导入过程的一些总结,后边若再有其他问题再来补充吧,至此告一段落,打完收工。

猜你喜欢

转载自blog.csdn.net/li0978/article/details/80216035