AndroidStudio项目导入的那些事
公司有一个老项目,曾经因为市场的原因搁置了,最近重新探究决定重启该项目,当然开发任务就由我来主持负责。拿到老项目第一件事,不用说就是先将老项目导入到开发环境中,然后看看具体架构和业务,该抛弃的抛弃该优化的优化。
工欲善其事,必先利其器
对于AndroidStudio的安装和使用在这里顺便也重申一下,有些童鞋喜欢重装这些开发环境,用以时常给自己冲冲血,一般不是大变化建议还是不用太频繁安装为好,毕竟开发才是首要任务。
第一次启动AndroidStudio很慢
Android第一次启动时在某种情况下会发现特别慢,这里的某种情况是多重因素的结合:
- 没有梯子。
- 宽带不好。
- 电脑老旧。
因为AndroidStudio第一次启动时要进行检查SDK更新,所以上边的第一个条件也算是致命点,程序员不会搬梯子有点说不过去,没有梯子到后边启动项目时下载gradle也是个麻烦事。
当然没有梯子可以采用禁止检查SDK更新也能顺利启动,解决办法:
在AndroidStudio安装目录的bin文件夹下找到idea.properties
文件,任意记事本工具打开并在文末添加disable.android.first.run=true
,然后保存,随后就能顺利启动AndroidStudio了。
idea.propertie文件位置:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dmGVDXOX-1587557805067)(https://note.youdao.com/yws/api/personal/file/749DC5C883064E4D8C199087915EF3B4?method=download&shareKey=0120519d201da42b1152fc23058c2670)]
idea.propertie文件添加禁止SDK检查更新:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LDNhht0h-1587557805070)(https://note.youdao.com/yws/api/personal/file/AF70093904DD4E1CA28B05D70026A8FF?method=download&shareKey=17a45338999a433556113f0d904183b2)]
AndroidStudio运行卡、慢
这个问题有点牵强了,碰到老人机硬性条件怎么处理,我想只能换电脑换硬盘扩内存了吧,这里给的方案是在硬性条件的基础上进一步提升软性条件进而提升性能。
AndroidStudio每次更新从google出厂时,google在AndroidStudio内存开销上会定义一些参数,他认为我们的机器都很棒,所以这些参数相应都不高,然后试试并非如此,哈哈。这些参数在哪儿设置呢?在AndroidStudio安装目录的bin文件下(和上边一样)找到studio.exe.vmoptions
、studio64.exe.vmoptions
这两个文件,前一个是针对32位PC的,后者是针对64位的,如果你的电脑是64位只需要将后者内容中的相关参数调大即可。
studio64.exe.vmoptions文件的位置:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-m5NyUM15-1587557805071)(https://note.youdao.com/yws/api/personal/file/EF35A7C2A4694712B217151E799033BE?method=download&shareKey=bde5a40b01af953cd48273d4a95fd856)]
studio64.exe.vmoptions文件内容参数调整实例:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JejIdvkI-1587557805073)(https://note.youdao.com/yws/api/personal/file/14EF89941F4E448F9E2218CD1FC42E35?method=download&shareKey=a398001c549d6cae7a1f3c7f097fb10e)]
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,先放一张图:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aZqAG6xn-1587557805075)(https://note.youdao.com/yws/api/personal/file/984709BCBA4443CD947E5941D131176E?method=download&shareKey=2061e956af8c4f6e83beae85208aba20)]
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-CNAndroid 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版本设置:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-B3ypzqn7-1587557805076)(https://note.youdao.com/yws/api/personal/file/FD1414E9C3D94F5BA5AC7FC5A6EC4547?method=download&shareKey=9e7f1205e0a895ac1c4ec68af7c34c4b)]
gradle构建插件版本设置:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hyObMyRU-1587557805076)(https://note.youdao.com/yws/api/personal/file/80C6CE1B698248F380A3C7AFEBD31D14?method=download&shareKey=8afd0efc71171cf0dd53f65a47a3b17c)]
gradle和gradle构建插件版本对应关系:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-g9H1Zcfu-1587557805078)(https://note.youdao.com/yws/api/personal/file/4195BBC3F9E7430CB87BC15F49DC011C?method=download&shareKey=5e5aeeccadcf758778df649bb32a2456)]
更多可参考官方说明: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修改项目包名
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0609Nggw-1587557805080)(https://note.youdao.com/yws/api/personal/file/9EF27E21B6A749A9B0D5781D561E53D2?method=download&shareKey=49f646717964ede77819d2f1254fdbb0)]
2.主Module中的build.gradle中修改applicationId,并Sync。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WOtfe6TH-1587557805082)(https://note.youdao.com/yws/api/personal/file/053F971FEEA2446980054705AC3B9E44?method=download&shareKey=1a91b8dbb298a2364a28d94c28fb554f)]
以上是针对项目导入过程的一些总结,后边若再有其他问题再来补充吧,至此告一段落,打完收工。
AndroidStudio项目导入的那些事相关推荐
- MES项目导入-案例分析-PCB制造厂ERP导入项目个案分析
本研究针对某PCB 制造厂之ERP 导入项目进行观察性研究,以实际参与个案公司ERP项目导入之方式进行深入探讨,提供未来PCB 制造业在筛选或导入ERP 系统时之参考.ERP 软件之导入必须先订定目标 ...
- android studio倒计时代码,AndroidStudio项目制作倒计时模块
前言 大家好,给大家带来AndroidStudio项目制作倒计时模块的概述,希望你们喜欢 项目难度 AndroidStudio项目制作倒计时模块的难度,不是很大,就是主要用了Timer和TimerTa ...
- 【Intellij IDEA】eclipse项目导入
[Intellij IDEA]eclipse项目导入 转载于:https://www.cnblogs.com/hfultrastrong/p/7645006.html
- 把myeclipse中的web项目导入eclipse中不能编程web项目的解决办法
title: 把myeclipse中的web项目导入eclipse中不能编程web项目的解决办法 tags: grammar_cjkRuby: true --- 右键单击项目,properties-- ...
- eclipse(myeclipse) JavaWeb项目导入Idea2017
2019独角兽企业重金招聘Python工程师标准>>> eclipse(myeclipse) JavaWeb项目导入Idea2017 转载于:https://my.oschina.n ...
- 一个AndroidStudio项目的目录
2019独角兽企业重金招聘Python工程师标准>>> 首先说一下gradle,gradle是一种构建工具,AndroidStudio用它来构建项目.AndroidStudio在创建 ...
- Intellij IDEA eclipse项目导入
[Intellij IDEA]eclipse项目导入 复制自 http://www.cnblogs.com/lindp/p/4484390.html 为了方便自己要用好找. intellij idea ...
- Android老版本项目导入到新版SDK提示错误
使用过去Android 1.1或1.5版SDK开发的项目导入到使用新版ADT插件的1.6或2.0.1项目中可能会发现报错,其实谷歌给我们提供了一个工具可以解决这个问题,在Package Explore ...
- 【OkHttp】Android 项目导入 OkHttp ( 配置依赖 | 配置 networkSecurityConfig | 配置 ViewBinding | 代码示例 )
OkHttp 系列文章目录 [OkHttp]OkHttp 简介 ( OkHttp 框架特性 | Http 版本简介 ) [OkHttp]Android 项目导入 OkHttp ( 配置依赖 | 配置 ...
最新文章
- Linux下SVN服务器支持Apache的http和svnserve独立服务器
- ASP.NET 4学习笔记(1) SQL注入攻击及解决方案.
- xmlWriter 以UTF-8格式写xml问题
- Oracle推出支援.NET 3.5与Visual Studio 2008的开发工具
- XnSay临时网盘程序v1.0全开源
- java多张图片合成一张_一款国外有趣、简单、功能齐全的图片处理软件。
- 云计算需要更强大的管理工具
- matlab肌电信号hz低通滤波器,燕山大学 数字信号处理 课程设计 肌电信号 Matlab 程序汇总...
- 理解图像处理中的 双线性内插法(图文说明)
- google手机连接Wifi后总会提示无法连接互联网问题的解决
- 爬取''百思不得姐''网站的全部视频
- win7 共享计算机 网络密码怎么设置,Win7无线网络共享设置方法丨Win7无线网络共享设置方法图解...
- 基于JAVA项目任务跟踪系统计算机毕业设计源码+数据库+lw文档+系统+部署
- python str转list
- Git使用教程(5)-Git常用命令
- 超越函数/微分方程 /积分中的技术/级数
- 微商和微信营销遇到的问题 转载
- kettle-创建资源库
- 注册验证之邮箱验证(SpringBoot框架)
- keras搭建Unet实现图像分割