android重构
Ⅰ android studio 重构包路径
首先开发的工具得是android studio,eclipse自行跳过,很久没用了。
比如我把原包路径com.xxx.android 修改为com.test.android。win mac都可以,
只需2步就可轻松搞定:
1、在项目的文件系统里面增加新包名的路径,然后把旧包名的所有文件夹文件都拷贝到新包名目录下,
2、接着去android studio,项目或者mole右键,点击replace in path
然后把原包路径和修改后的包路径进行替换,项目不大的话估计几分钟内,如果比较大可能需要10几分钟,慢慢等它替换完毕。完毕后,运行项目,不报错的话就说明OK 了,最后删掉之前包名的文件目录。当然同理,这个方法也可以替换全局字符串,再也不用一个一个的手动复制粘贴了。
Ⅱ 怎么在 android studio 中使用 重构功能
一、介绍
很多android 开发者都感叹做android开发竟然都没有一款专门的软件来使用,不像IOS有Xcode,WP有VS。一般做android开发都是eclipse或者ADT或者IntelliJ IDEA。后来,终于,哈哈,有了Android Studio。Android Studio以IntelliJ IDEA为基础,旨在取代Eclipse和ADT(Android开发者工具)为开发者提供更好的开发工具人称“亲生”的android开发IDE,本人使用了一段时间之后,发现功能真是强大,完爆eclipse等开发工具,最大的亮点就是【代码提示】和【实时预览布局】这两块。
官网上介绍说,Android Studio有诸多好处:
基于Gradle的构建支持
Android特定重构和快速修复
更加丰富的模板代码,让创建程序更加简单
更好的提示工具,对程序性能、可用性、版本兼容和其他的问题进行捕捉控制
直接支持ProGuard和应用程序签名功能
自带布局编辑器,可以拖放UI组件,可以在不同的配置的屏幕上预览布局
内置google云服务
内置svn,git工具
支持插件安装
总而言之,这是google自家出的IDE,肯定对android开发的支持是极好的。先贴一张图,看看界面。
二、使用-创建项目
在Android Studio中的目录组织结构跟在eclipse中有很大的差别。Android Studio中的project的概念和eclipse中的工作空间(workspace)的概念很相似。AS中的mole就相当于eclipse中的一个个项目。
下面开始创建一个项目,上手一下:
点击File -> create new project
输入application的名字,Company Domain和project的位置。然后下一步:
选择平台和最低版本的SDK。点击下一步:
可以看到Android Studio提供了很多界面的模板可供选择,选择一个模板,然后点击下一步:
设置activity的相关信息。点击finish,就完成了一个项目的创建了。
三、从eclipse导出项目到Android Studio
在eclipse中选择file -> export ,然后选择android下面的Generate Gradle build files
next,next之后选中要导出的项目,然后下一步,finish。
然后需要在Android Studio中,选择file -> import project。按照上面的步骤到处的项目目录下,会生成一个build.gradle文件,此时就需要选中这个文件,然后点击OK。
到此为止,就完成了eclipse导出项目到Android Studio了。
四、安装genymotion插件
大家都知道,google“亲生”的模拟器启动时很慢的,好在有了genymotion。这款软件启动模拟器的速度确实是很快的。但是怎么在Android Studio中使用Genymotion呢?看下面的步骤吧!
首先打开设置中心,使用快捷键【ctrl + alt + s】或者点击面板上的图标。然后找到【Plugs】,如图示:
右侧面板列出来的是已经安装的插件。点击Browse repositories..进行联网搜索:
搜索到Genymotion之后,右侧点击install就行了,然后会提示让你重启一下,重启之后,在主面板上就会显示genymotion的一个小图标,点击图标进行配置genymotion的路径。
设置完成之后,再次点击那个图标就会显示【Genymotion Device Manager】。
OK,设置完毕!!!
五、使用第三方类库
六、删除一个项目
下面来看一下,怎么在Android Studio中删除一个项目(mole)。
首先右键一个项目,选择【Open Mole Settings】或者选中项目之后,按【F4】,然后出来mole的设置界面。在这里可以进行很多设置,比如【Min Sdk Version】、【Target Sdk Version】、【Version Code】、【Version Name】等等。
在此面板左侧,选中一个mole,点击上面的减号。然后回到主界面上,看到还是刚才操作的mole还是现实在左侧面板列表中。不过项目名称上面少了一个小图标,表示已经从这个project中删除了,此时再右键该mole,会出现【delete】选项,点击就可以完全从硬盘中删除该项目了。
在完全完全删除这个mole之前,如果还想要把它添加到当前project中,直接【setting.gradle】中添加该项目的名称即可。
七、快捷键汇总
参考:http://blog.csdn.net/altair86/article/details/897217
http://blog.csdn.net/crazy1235/article/details/41702277
Ⅲ 求助.关于android studio软件的问题
Android Studio 是一个Android开发环境,基于IntelliJ IDEA. 类似 Eclipse ADT,Android Studio 提供了集成的 Android 开发工具用于开发和调试。
在IDEA的基础上,Android Studio 提供 :
1. 基于Gradle的构建支持。
2. Android 专属的重构和快速修复。
3. 提示工具以捕获性能、可用性、版本兼容性等问题。
4. 支持ProGuard 和应用签名。
5. 基于模板的向导来生成常用的 Android 应用设计和组件。
6. 功能强大的布局编辑器,可以拖拉 UI 控件并进行效果预览。
Ⅳ 有哪些值得强烈推荐的 Android Studio 插件
Android Studio没有任何的插件,因为这是针对android开发用的开发工具,不像eclipse,什么插件都有。
Android Studio 是一个Android开发环境,基于IntelliJ IDEA. 类似 Eclipse ADT,Android Studio 提供了集成的 Android 开发工具用于开发和调试。
在IDEA的基础上,Android Studio 提供 :
1. 基于Gradle的构建支持。
2. Android 专属的重构和快速修复。
3. 提示工具以捕获性能、可用性、版本兼容性等问题。
4. 支持ProGuard 和应用签名。
5. 基于模板的向导来生成常用的 Android 应用设计和组件。
6. 功能强大的布局编辑器,可以让自己拖拉 UI 控件并进行效果预览。
Ⅳ androidstudio怎么进行方法重写的快捷键
Android
Studio常用快捷键
1.
Ctrl+D:
集合了复制和粘贴两个操作,如果有选中的部分就复制选中的部分,并在选中部分的后面
粘贴出来,如果没有选中的部分,就复制光标所在的行,并在此行的下面粘贴出来。
2.
Ctrl+空格:
输入代码时按此组合键会列出与之相匹配的类、方法名、成员变量等,起智能提示的作用。
在编辑XML文件一样有用。
3.
Ctrl+向下箭头
或Ctrl+向上箭头:在有自动匹配下拉列表时,此快捷键会自动关掉下拉列表,
光标移动到下/上一行。
4.
自动匹配下拉列表的排列方式的切换:在自动匹配下拉列表的右下角有个“π”图标,点击后可选
是按:实用性、字母两种排列方式。
5.
Ctrl+斜杠
、Ctrl+shift+斜杠:
Ctrl+斜杠:注释或取消注释当前行或选中的代码块,以双斜杠的方式即“//”
Ctrl+shift+斜杠:注释或取消注释选中的代码块,以“/*……*/”方式注释,
6.
Ctrl+shift+Enter:自动匹配相对应的语法结构,比如if,do-while,try-catch等结构。
7.
Ctrl+F:搜索
8.
Ctrl+句点:在自动匹配下拉列表中,选中第一个item
9.
感叹号:在自动匹配下拉列表中,上下键选中一个返回结果为boolean的item,按感叹号会自动取反:
10.
Ctrl+Enter
:在自动匹配下拉列表中,在没有选中的item时,默认选中第一个item。
11.
Ctrl+shift+A:快速查找android
studio中的菜单。
12.
Ctrl+N:快速查找类名、文件
13.
Ctrl+B:直接跳转到类、方法、成员变量定义的地方。与Ctrl+鼠标左键效果一样
14.
Ctrl+Alt+B:查询有哪些类实现了光标所在的接口。
15.
Ctrl+Alt+shift+I:检测代码,比如检测一些定义了,但没有使用过的变量或方法。检测的目的是为了提高代码效率。
16.Ctrl+Alt+shift+N
:快速打开输入的方法或变量。
17.Ctrl+shift+F7:以高亮的形式标志处一些相关的东西,这里主要由三种情况:1.光标的位置在implement时,
会把类实现了接口的方法名给标志出来;2.光标的位置在return时,会标志出方法的所有退出的地方;
3.光标在try或者throws关键字处时,会标志出会产生异常的语句。
18.shift+鼠标滚动:可实现编辑界面的横向滚动。
19.Ctrl+Alt+V:调用方法时传入的参数是比较复杂的表达式时,可用此组合键重构变量,以简化代码的复杂度。
在组合键之前要先选中表达式。
20.
Ctrl+D:比较两个jar文件,在同一工程中,选中两个jar文件,按此组合键
21.Ctrl+O:子类想重写父类的方法时,按此组合键可显示所有父类的方法。接口对应的组合键时Ctrl+I。
22.Ctrl+shift+I:快速查看方法体,想查看一个方法是如何实现的,可把光标移至方法处,按此组合键。
23.Ctrl+Q:把光标移至方法处,按此组合键可快速查看方法的说明文档。
24.Ctrl+~:切换编辑界面的风格,快捷键设计
25.Alt+shift+C:查看工程的最近修改。
26.Ctrl+E:快速查看最近打开打开过的文件。
27.shift+F6:可对类、方法、变量进行重命名,使用的地方会自动更新名字。
28.Alt+F1:快速打开project
view、structure
view
等查看相应的元素。
29.Ctrl+Alt+F7:查看一个类、方法、成员变量在整个工程中的使用情况。
30.Ctrl+shift+空格:在赋值或者是在方法中要传入参数时,列出类型匹配的方法名、成员变量名。
31.Ctrl+Alt+T:选中一块代码,按此组合键,可快速添加if
、for、try/catch等语句。
32.Ctrl+Tab:打开界面切换窗口,保持按住Ctrl键,选中相应的要打开的窗口。
33.Ctrl+W:选中光标所在的所在的单词(一个成员变量或者是一个方法名),多按一次会选中所在的语句,
再多按一次会选中所在的代码块。。。依次类推,每增加一次会扩大一级选中的范围。
Ⅵ 如何对Android客户端性能优化
为什么我们的App需要优化,最显而易见的时刻:用户say,什么狗屎,刷这么久都没反应,取关卸载算了。
这跟什么有关,我们先苍白的反驳下,尼玛用户设备老旧网又烂,关我屁事,根本不用优化。可是,老板拍板了,施压给CTO,然后CTO又来找你:Y的今天必须给我想办法优化了,不然不准回家。
好吧,为什么从UI的表象上看,App又卡又慢而且还错乱。我们试着来剖析下吧。
题外话:把minSDK改到4.0+,去特么的low用户,连手机都不愿意换,还能指望它能给你带来多少营收么,直接pass掉吧。4.0前的系统bug不少,不能为了弥补这些bug而降低了整体的高性能。
好了,让我们先从UI说起:
首先要明白的是UI的绘制流程:measure-layout-draw,measure与layout都需要for loop所有的子控件,汇集起来才能完成绘制,布局。所以子控件越多,所消耗的时间越长(inflate,layout_weight,relative,多层嵌套等),减少不必要的子控件或层级,是相当有必要的。你可以通过merge,viewstub这些标签来减少层级嵌套。如果你的空间观念没那么好,可以用HierarchyViewer工具来检查。
对于Listview或者GridView这种多item的组件来说,复用item可以减少inflate次数,通过setTag,getTag的ViewHolder方式实现复用,这里要注意的是,holder中的控件最好reset后再赋值,避免图片,文字错乱。
对于ViewPager第一次显示时卡顿以及左右滑动卡顿,有以下几种优化方式:
ViewPager同时缓存page数最好为最小值3,如果过多,那么第一次显示时,ViewPager所初始化的pager就会很多,这样pager累积渲染耗时就会增多,看起来就卡。
每个pager应该只在显示时才加载网络或数据库(UserVisibleHint=true),最好不要预加载数据,以免造成浪费
图片显示不出来或者加载时间太长,怎么办?分两部分,下载速度,加载速度。
对于下载,要控制好同时下载的最大任务数(平均速度慢),同时给InputStream再包一层缓冲流会更快(如BufferedInputStream)。
对于加载速度,我们要知道一点,虽然下载的图片可能只有几百K,但是decode成bitmap所占用的内存可是成倍的,尽可能的减小图片size是根本因素,让服务端提供不同分辨率的图片才是最好的解决方案,内存总有耗尽的时刻,别老想着大分辨率会更清晰,实际就只有150*150的空间,非给弄张1000*1000的图片是不恰当的。另外论加载速度:内存>硬盘>网络,合理的使用内存缓存也是关键。假如自己写不好,没关系,有那么多开源的图片缓存框架,不用自己操心。
再说缓存
有很多种缓存方式,也不用Stay列举了,我们要说的是搭配使用。
比方说,以前我们一直在用强引用,HashMap,后来我们发现占内存,我们就用软引用,弱引用来及时回收,再后来因为回收机制不可控,所以又有了lrucache,disklrucache通过算法来平衡内存与硬盘缓存。随着android版本的推进与演化,我们也应该拥抱变化。如果你的App里还有软引用,弱引用的地方,不妨再check下。
比方说网络+数据库。网络我们一般都是去主动获取,而非被动接受。那如果说数据是重复的或者未更改的呢?那我们去取一次网络数据有什么意义呢?我的解决方案是给每个activity或fragment或每个组件设置一个最大请求间隔,比如一个listview,第一次请求数据时,保存一份到数据库,并记下时间戳,当下次重新初始化时,判断是否超过最大时间间隔(如5分钟),如果没有,只加载数据库数据,不需要再做网络请求。当然,还有一些隐式的http请求框架会缓存服务器数据,在一定时间内不再请求网络,或者当服务器返回304时将之前缓存的数据直接返回。
反正也说到网络了,那我们也来说说
现在有很多现成HTTP框架供我们使用,我们几乎只用写配置就可以搞定一个url请求,但是这里有很多需要服务端配合的,比如:json数据格式,WebP代替jpg,支持断点续传,多个请求合并成一个,尽量不做重定向,服务器缓存以及负载均衡等。
对客户端本身,除了上述的实现,我们还需要合理的缓存,控制最大请求并发量,及时取消已失效的请求,过滤重复请求,timeout时间设置,请求优先级设置等。
优化可不是一个人的事,实现一个功能简单,但是想优化重构,那是很不容易的事。需要多方面的预判与联调。合理的假设与实践是优化最重要的手段。
说完这些具体的点,我们再来说说一些常识,或者称之为代码规范。
你要知道for loop中不要声明临时变量,不到万不得已不要在里面写try catch。
明白垃圾回收机制,避免频繁GC,内存泄漏,OOM(有机会专门说)
合理使用数据类型,比如StringBuilder代替String,(笔试题最常见的是str+="str"中有几个对象) ,少用枚举enum,少用父类声明(List,Map)
如果你有频繁的new线程,那最好通过线程池去execute它们,减少线程创建开销。
你要知道单例的好处,并正确的使用它。
多用常量,少用显式的"action_key",并维护一个常量类,别重复声明这些常量。
如果可以,至少要弄懂设计模式中的策略模式,组合模式,装饰模式,工厂模式,观察者模式,这些能帮助你合理的解耦,即使需求频繁变更,你也不用害怕牵一发而动全身。需求变更不可怕,可怕的是没有在写代码之前做合理的设计。
当然还有很多很多,Stay所说的也只是一个大的轮廓,还是需要自己不断的尝试。会开发写代码跟会做产品的区别还是蛮大的,仅仅是态度就能刷死80%的码农了。当你碰到一些需要优化的地方,耐心的去分析,时间的累积会让你成为真正的工程师。
另外优化也没有绝对的完美,每一次优化都是基于当前的环境来做的,要明白沟通是最好的优化,不盲从,不随便,三思而后行。
Android上如何做性能优化的?大概写三年代码就能差不多知道了。
Ⅶ Android Studio和Eclipse有什么区别和相同之处吗
Android studio出版已经有一段时间了,经过这一段时间的实际应用,切身体会到android Studio和eclipse之间的优劣之处,现在将其总结如下:
1,工程管理:
a,新建工程时,Android Studio和eclipse新建工程的文件夹组织方式不同,开发环境之间的共容性较差,比如要将eclipse中的project导入到Android Studio中需费一定的周折,而要将Android Studio中的工程导入到eclipse中,却没有比较简单的方法,只能一个文件一个文件的拷贝。
b,新建工程后,设置工程的属性比较难,在eclipse中直接去properties设置就可以,但是在Android Studio中,0.1版提供了一个界面设置project structure,我设置过很多次,遇到各种问题,在Android Studio中新建的工程问题较少,但是从eclipse中导入的工程就比较容易出BUG,比如找不到Lib,找不到sdk,当升级到0.1.1版的时候直接没有界面了,当点击project structure的时候,提示:我们以后会提供一个界面来配置工程的设置,但是在这之前需要自己在gradle里去手动设置。
c,新建或导入工程后,要删除工程,Android Studio只能去workspace文件夹去删除,而不能在开发环境中删除。
d,在eclipse中引用库项目非常简单,库项目properties里android lib打钩,然后就可以直接在项目中引用了,但是在Android Studio中,由于时间的关系,我到现在没找到解决方法。
综上所述,在管理工程这块,可能是对Android Studio比较陌生,不习惯,总觉得android Studio远不如eclipse.
2,IDE界面:
a,Android Studio提供的dock留边停靠完胜eclipse,在eclipse中要是想用更大的视野来显示一个view,而隐藏其他的view的一个方法就是点X,关闭后要打开就比较麻烦了,而Android Studio是将常用的view最小化dock到其边界,更加人性化,已操作和灵活。
b,第二点,eclipse的启动速度令人蛋碎呢,每次开机先启eclipse,后启动其他程序,其他程序都百米5s的速度,eclipse都还没上起跑线。
c,还有eclipse的死机问题非常严重,我的ubuntu每天都要因为eclipse死机的问题来重启,有的时候甚至一天五六次。
3,项目编码:
a,Android studio中的图标在每行最开始表示,使开发者更加可视化了自己的界面,程序等,这是Android Studio的最大亮点。
b,错误提示不比eclipse提示,eclipse放在错误上边即可提示,android studio需要按快捷键command+1才能显示。
c,拷贝一个方法或字段到另一个地方时,eclipse中是连它的引入类一起拷贝,比如拷贝List<BluetoothDevice>时会连import java.util.List和import android.Bluetooth.BluetoothDevice一起拷贝过去,而android Studio会给用户提供一个选择,要拷什么不要拷什么会给用户一个界面来勾选。
d,Android Studio 中 command+W可以直接快速定位到最近编辑的文件,不知道eclipse中有没有,暂时没有发现。
e,inspect code,利用android lit可以帮助开发者自动检查代码中的错误和有可能出现bug的地方。
f,在Android Studio中code assistance要远远强大于eclipse,比如你可以先调用方法,再写方法时会有提示,而在eclipse中只能傻傻地自己写,没有提示。还有一个,拷贝string或color中的value前选择value的时候,eclipse的反应速度慢到无法忍受。
4,res资源:
a,Android studio中的颜色等都在每行最开始表示,使开发者更加可视化了自己的界面,程序等,这是Android Studio的最大亮点。
b,在代码中可以看到资源中不痛分辨率下的drawable图像,将光标放置图像名字中间,点View-quick documation即可看到,由于是在本环境中打开,而不是像eclipse中重启程序打开,所以打开图像的速度远远小于eclipse。
c,生成res的values文件更简单,感觉创建时更倾向于android开发,android专用,不像eclipse那么复杂。
d,提示更加完善,比如如果将Button拼成Bitton,Android Studio会自动检查出来,如果没有layout_width或layout_height,会自动检查出来并提供选项让开发者选择。
e,在android Studio中提供了一个Preview视图,可以和layout.xml文件进行关联,在xml文件中改属性,或添加组件,会动态在Preview视图中表现出来,而且可以添加不同语系,不痛屏幕尺寸的android设备。
5,编译代码:
a,在eclipse中编译速度感觉要慢于Android Studio,但是在eclipse中有一个build automatically的功能,觉得挺好用,在android Studio中未找到,只能在每次安装前手动编译。
b,编译后选择运行的平台,eclipse中会自动打开软件,而android Studio会安装软件,需要手动打开。
6,LOG查看:
a,log查看相比较而言,还是android Studio稍微先进于eclipse,在eclipse很多次,我删掉的tag,第二次打开eclipse,它又存在于左边的list当中,Adnroid studio看起来界面比较友好,使人更容易找出log。
以上几点是我在这段时间来试用android studio和eclipse的真实体验,优缺点介绍的不那么完善,可能其中也存在一些问题,毕竟仁者见仁,智者见智,我觉得相对而言,总体还是Android studio 略胜eclipse一筹,由于android studio是新版本,还是不断的完善当中,所以建议初学者可以直接学习用android studio来开发,因为在我看来,android Studio代替eclipse来写android程序已经是大趋势,不可避免的了,谁先掌握了此工具的用法,谁就会比其他开发者更有优势,编程优势,面试优势等,但是毕竟android studio才刚出现,还年轻,难免会出现一些比较难解的bug,所以建议有经验的开发者暂时先用eclipse来开发,毕竟熟悉了那么长时间了,不会像android Studio那样,如果中奖碰上大的bug,那真是叫天不应,入地无门啊,整个项目的进度就得耽搁很久了 。