查看原文
其他

必会 | 手把手带你体验Android Studio 3.0的新功能

2017-10-27 鸿洋 鸿洋
1 概述


昨天听说Studio除了稳定版本的3.0,立马升级了一波~~顺便看了下官网的介绍,实际操作了一哈,下面给大家介绍下一些新功能。


其实官网上有4个视频基本上介绍了对应的功能,四个视频我也替大家下载了,包括gradle-4.1的zip,我上传到百度云了,可以在文末下载。



不要急着拖到文末,先看下Studio 3.0带来的一些惊艳的功能吧~~


2 Device File Explorer


第一个介绍的是设备的文件管理器,我非常喜欢这个面板,介绍下实用的功能:


读取我们debug包的data/data/packageName下的文件,prefs、数据库文件等。



我们可以在data/data/下选择一个我们自己的app:



我们可以直接查看我们的应用程序的内部文件,部分可以直接打开,比如xml文件等,并且我们可以直接右键新建删除上传任意文件(提取sp、数据库文件等)。


比如我上周需要复现一个case,需要用到一个特定的sp文件,就需要想办法push到特定的位置。之前都是run-as,然后从sdcard mv过去。


现在就方便多了。


还有个方便之处就是从SdCard中存取文件变的方便了~


3 Apk Analyzer


这个功能在之前的版本也有,就是我们可以直接打开一个apk文件(File->Open):



可以apk中的资源,类信息等,那么这个版本又做了一些优化:


首先是支持上传mapping文件了,比如我们一个混淆后的apk,会同时生成一个mapping文件,可以很方便的还原混淆(点击上面框住的按钮即可)。


初次以外还增加了一些功能:


直接查看某个类反编译后的字节码:



直接查看某个方法的引用情况:



直接生成某个类、字段、方法的keep rule:



以上操作可以是任意apk,好像对反编译很有帮助~~


4 Android Profiler


这个可以在下图位置找到:



其他的面板找不到,也可以在这里找到。


主要用于性能分析,和之前的Monitor类似,但是功能强大了不是一点~



最上面会记录每个Activity的打开,以及你的一些操作(上面的小圆点,点击按钮等)。


下面分别是CPU、内存、网络。


先看下网络



我点击了一下拉取数据,可以看到有一次明显的网络传输,我们按住左键然后框选这个区域:



可以看到我们本地网络请求返回的数据,本例是json;以及请求的相关信息;以及调用栈。


是不是感觉跟抓包有点像~


有没有被惊艳到!


CPU内存的话类似,可以实时的监控当前的数据,并支持点击录制(再次点击关闭),会自动进行分析,效果图如下:


内存:



CPU:



这块有兴趣的可以好好研究哈~~


5 Java 8 Support


3.0也对Java8带来了更好的支持,下面通过几个小例子展示下:


首先记得,在build.gradle文件中写入:


android {    //...    compileOptions {        sourceCompatibility JavaVersion.VERSION_1_8        targetCompatibility JavaVersion.VERSION_1_8    } }


或者可以可视化的操作:


File->Project Structure 



选中module,指定为1.8也会在build.gradle文件中自动写入。


现在我们编写一段常见的代码:


mBtn = findViewById(R.id.id_btn); mBtn.setOnClickListener(new View.OnClickListener() {    
   @Override    public void onClick(View view) {        Toast.makeText(                SecondActivity.this,                
               "嘿嘿嘿",
               Toast.LENGTH_SHORT).show();    } });


看一段Gif吧:


可以看到其对lambda支持,且支持匿名内部类到lambda的自动转化,非常方便我们熟悉lambda语法。


我们再看一个Java8的特性,在Java 8中,接口内是允许有默认的方法(实现了该接口即包含该方法)和静态方法的。


public interface IFun {    

   default String testDefaultMethod() {        
       return "I am default method";    }    
       
   static String testStatisMethod(){        
       return "I am static method.";    } }


可以支持直接这么写了。


当然并非所有的特性都支持所有版本了,还是有部分特性需要在24以上才能支持:



继续往下看吧~~


6 Kotlin Support



这个之前的版本插件也都支持了~~简单说一哈~


新建项目的支持可以选择support kotlin



也可以在以前的项目中,直接New Kotlin File:



可以选择New Activity,选择:



还可以将某个Java类直接转化为Kotlin File



好了,大致介绍这么多,还有更多的可以在官网中探索~


7 一些你可能遇到的问题


首先Studio更新很简单,直接Check for Updates即可:



这个想必都没问题。


安装重启后,会提示你去更新gradle tool,这里建议你对老项目先暂时点击dont remind me on this project,以防有坑。


新建一个项目玩一哈,提示你可以点击确定。当然你也可以手动去更新,需要修改两个地方:


项目的build.gradle(不是module):



更新到3.0.0,你也可以在仓库中加上google()。



点击gradle-wrapper.properties,修改gradle文件为4.1。


然后点击同步....


这里有很大可能性,你会没有办法下载成功该文件,read timeout之类的错误。


不要担心,这个文件我放在百度云,可以下载下来,然后放到用户目录的(Mac):



该目录下,zip文件直接放入:



然后重启Studio即可。


windows一般在 C:\Users\Administrator\.gradle 


注意:Java8 support 一定需要在gradle插件配置成功后。


对于Android Profiler你可以也会遇到没有办法框选的问题:


点击Run Config:



可能你是一个老项目,API<26。


有两个办法:

1、更新API到26

2、按照上述更新gradle plugin,然后Enable的复选框就可以选择了。


你可能用上的文件下载(官方介绍视频和gradle-4.1.zip)直接公众号内回复:AS3 获取(防止链接失效,方便我更新回复~)。


欢迎长按下图->识别图中二维码或者扫一扫关注我的公众号:

如果你有想学习的文章直接留言,我会整理征稿。如果你有好的文章想和大家分享欢迎投稿,直接向我投递文章链接即可。


ZZS

死板、呆萌、宅、不解人意…作为一名敲代码为生的程序员,你是不是被旁人贴过太多不属于你的标签?


1024程序员节这天,100offer给你一个撕掉标签的机会:关注100offer微信号,发送一段话/一张图/一段视频/一条语音…展示你除了敲代码以外的神技能,还有最高价值1024元的“程序员兴趣基金”等你拿!

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存