java怎么获取src目录下所有的包名,类名,方法名 以及通过一个类名获得该类下的所有方法名

java怎么获取src目录下所有的包名,类名,方法名 以及通过一个类名获得该类下的所有方法名,第1张

可以使用以下代码来获取src目录下所有的包名,类名,方法名 以及通过一个类名获得该类下的所有方法名。

import javaioFile;

import javalangreflectMethod;

public class LoopApp {

public static void main(String[] args) throws Exception {

String packageName = "";

File root = new File(SystemgetProperty("userdir") + "\\src");

loop(root, packageName);

}

public static void loop(File folder, String packageName) throws Exception {

File[] files = folderlistFiles();

for (int fileIndex = 0; fileIndex < fileslength; fileIndex++) {

File file = files[fileIndex];

if (fileisDirectory()) {

loop(file, packageName + filegetName() + "");

} else {

listMethodNames(filegetName(), packageName);

}

}

}

public static void listMethodNames(String filename, String packageName) {

try {

String name = filenamesubstring(0, filenamelength() - 5);

Object obj = ClassforName(packageName + name);

Method[] methods = objgetClass()getDeclaredMethods();

Systemoutprintln(filename);

for (int i = 0; i < methodslength; i++) {

Systemoutprintln("\t" + methods[i]getName());

}

} catch (Exception e) {

Systemoutprintln("exception = " + egetLocalizedMessage());

}

}

}

adb shell pm list packages:列出所有的包名。

adb shell dumpsys package:列出所有的安装应用的信息

dumpsys package comandroidXXX:查看某个包的具体信息

用命令方获取:

Aapt dumpbadging xxxxapk

第一个框为包名

第二个框为主Activity名

如果取包名与Activity在命令行中不方例还可以用以下方式获取

Aapt dumpbadging xxxxapk >c:\apktxt

之后打开c:\apktxt!

最近在做Android的平板的开发,想在桌面上预置一些第三方应用的Widget,在桌面预置Widget的方法就是要获得应用的包名和类名。桌面预置widget的方法 在Launcher的配置文件 res/xml/default_workspacexml中添加如下的代码:<appwidgetlauncher:packageName="comgoogleandroidappsgeniegeniewidget"//预置应用的包名launcher:className="comgoogleandroidappsgeniegeniewidgetminiwidgetMiniWidgetProvider"//预置应用的Provider的类名,不是Activity的类名launcher:screen="1"//在第几屏0为第一屏,launcher:x="0"//x坐标launcher:y="0"//y坐标launcher:spanX="4"//x方向占几个单元格launcher:spanY="1"///y方向占几个单元格通过logcat有时可以找到应用的包名和Provider类名,此方法不可取,容易出错。系统的widget可以通过查找相关的源码找到对应的包名和Provider的类名,但是第三方应用看不到源码,但是也可以通过反编译第三方应用,获得相应的Maifestxml文件,找到对应的包名和Provider类名,但是此方法比较繁琐。可以通过在Launcher中添加如下代码,可以将系统中所安装的所有 的widget的信息打印出来:在Launcherjava中的onCreate方法中添加下面的代码:List<AppWidgetProviderInfoproviders=mAppWidgetManagergetInstalledProviders();finalintproviderCount=providerssize();for(inti=0;i<providerCount;i++){ComponentNameprovider=providersget(i)provider;Logi("xxx","packagename:"+providergetPackageName()+"classname:"+providergetClassName());}新编译Launcher,把Launcher push进去之后,执行 adb logcat -s xxx,就可以看到打印出来的Log信息,包名和Provider了类名。桌面预置shortcut的方法:在Launcher的配置文件 res/xml/default_workspacexml中添加如下的代码:<favorites

String packageName = AclassgetPackage()getName();

或者:

packageName = new A()getClass()getPackeage()getName();

即可获得包名了。

以上就是关于java怎么获取src目录下所有的包名,类名,方法名 以及通过一个类名获得该类下的所有方法名全部的内容,包括:java怎么获取src目录下所有的包名,类名,方法名 以及通过一个类名获得该类下的所有方法名、windows下输入命令后怎么查看包名、如何获取app 的包名和activity 名等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9308530.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存