可以使用以下代码来获取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 名等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)