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的包名。在匿名類的情況注意返回的值可能為空