必会 | 手把手带你体验Android Studio 3.0的新功能(第一章)

该文章出自:https://mp.weixin.qq.com/s/2XmVG4mKEDX6-bvZ0vvmcw  感谢作者

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的复选框就可以选择了。

Advanced profiling is unavable for the selected process

配置编译版本和目标版本
按照如下图,将编译版本和目标版本改为API26以下(包含API26)

遇到的坑 Monitor

1.android studio的Android Monitor没有连接上--No Debuggable Processes

如果android studio的Android monitor不可用,也就是想看当前运行的程序的内存和CPU占用情况时,发现没有一个进程可看(下图),显示No Debuggable Processes,

图1.

那么可以尝试Tools->Android->Enable ADB Integration的选项打上勾,然后重新运行程序,如下图2.

图2.


如果还不行,看一下是否通过android studio打开了Android Device Monitor,如果打开了就关了,此时再看应该就可以用了。

图3


关掉上面的窗口以后重新运行App,这个界面就可以用了。如果还是不行,关掉android studio试试。

图4




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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值