Android studio 奇淫技巧

Android studio 修改预览界面的尺寸

Android 由于设备种类众多,适配就成了一大难题,一些项目会使用一些成功的适配方案,如今日头条适配方案,今日头条通常可以设置为360X720 的大小,但这样也给我带来了一些问题,
UI给的参数使用后在预览界面始终感觉很别扭,虽然知道在真机测试后会运行正确,但有强迫症的人看到布局空隙十分难受,普通人也会导致降低效率。那我们就需要改变预览界面。

在点击如图所示的地方后会弹出很多默认预览布局的尺寸,大多为谷歌亲儿子pixel的尺寸,如果我们想要添加自己的尺寸,只需要点击add device 即可创建自己的布局。
默认的虚拟机是没有我们想要的尺寸的,所以点击新建一个模拟器,在布局参数上输入我们需要的尺寸

创建成功后即可在布局选择的选项找到自己创建的布局,但在一些AS版本中需要重启一下才可以看到自己的模拟器布局。

如果只是预览界面是不需要打开模拟器就可以使用自定义布局的

快速查找界面与activity的对应关系及常用adb命令

刚导入一个项目时可能不太熟悉项目的结构,有些项目写的也比较难懂,难以从xml文件和实际的界面相对应。这里有两种方法。

从ADB调试入手

再Androidstudio自带的Terminal中或系统的命令行中输入: adb shell "dumpsys window | grep mCurrentFocus"
即可显示当前你的模拟器/真机打开的界面对应的activity,如果你是用Linux开发,请去掉引号

或者通过简单的反射获取activity

如果你的activity没有继承一个统一的baseactivity那么需要让所有activity都继承自己写的baseactivity,之后只需要再baseactivity中生命周期oncreate或其他添加
Log.e("baseActivity", "cross base activity"+getClass().getSimpleName());
即可在显示各个创建的activity了。
同时再谈一下Java的反射,Java的反射对于小白来说都觉得很复杂,但其实可以简单的使用,如上面说的方法,

apple.getclass.getSimpleName();
apple.getclass.getName();
apple.getclass.getCanonicalName();

以上三种都是简单使用反射的例子,第一个是简单从源代码中返回实例名称,第二个是返回实体类型名称,第三个是规范定义格式输出。
简单来说,simplename只会返回简单的实体类名,而getname会返回包名+类名,如果是数组类头部会返回L,而getCanonicalName是规范化,如是数组会加上[]。
simple只是去掉getCanonicalName的包名。在匿名类的情况注意返回的值可能为空

其他常用adb命令

adb shell /system/bin/screencap -p /sdcard/screenshot.png

这个命令是截图命令,同时配合下面的文件传输命令,可以实现真机或模拟器截图效果
adb pull /sdcard/screenshot.png D:download
adb shell dumpsys window | findstr mCurrentFocus 获取当前activity
adb shell dumpsys activity top 会获取当前最顶层的界面的信息 同时CTRL+F搜索 added fragments 获取当前fragment

Android studio运行Java程序

Android studio实际上也可以运行Java程序,方法有两种,一直接在项目建立Java文件,然后添加main方法,之后点击右键菜单,直接点击运行Java文件选项,
其二是创建Java library module ,点击file——new——module 建立新的module,类型选择Java library,之后点击run按钮的设置,添加run配置,包括启动类位置,run name等就可以在run 按钮中看到有多出来的module启动选项,这样就可以运行了。

使用Android studio自带的截图录像功能

许多时候我们会遇到真机测试或模拟器截图录像等的需求,如果使用真机截图再上传电脑未免太过麻烦,这时可以使用Android studio自带的截屏录像功能,在Android studio的log cat 窗口中,点击左下角的菜单,也可能在菜单收起来的选项中有一个照相机的按钮,点击即可直接将当前真机或模拟器的屏幕图像截取,同时也支持录像功能。

原文地址:https://www.cnblogs.com/baimiyishu/p/13487996.html