Android 小技巧

刚接手一个项目如何快速知道界面与activity的对应关系

刚导入一个项目时可能不太熟悉项目的结构,有些项目写的也比较难懂,难以从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的包名。在匿名类的情况注意返回的值可能为空

Android 小技巧

上一篇:fiddler-04(怎么对APP抓包)


下一篇:简单体验一个高性能,简单,轻量的ORM库- Dapper (无依赖其它库,非常方便高效)