`
jialisoft126
  • 浏览: 35681 次
  • 性别: Icon_minigender_1
  • 来自: 上海
最近访客 更多访客>>
社区版块
存档分类
最新评论

ANDROID 中获取第三方包名和类名的简单方法

阅读更多

最近在做安卓系统开发板的调试的时候,想在里面运行一个3D性能测试程序,但是安装APK程序后,找不到启动图标。原来是被屏蔽了。只能通过adb接口来安装和启动第三方包,但是我们通过am,又不知道第三方包的包名和启动ACTIVITY名。之前没学过安卓编程,简单的在网上找了资料,在模拟器上进行解析类名和包名。代码附下
        public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        String archiveFilePath="/123.apk";//待测的包
        PackageManager pm = getPackageManager();    
        PackageInfo info = pm.getPackageArchiveInfo(archiveFilePath, PackageManager.GET_ACTIVITIES);    
        if(info != null){    
            ApplicationInfo appInfo = info.applicationInfo;    
            String appName = pm.getApplicationLabel(appInfo).toString();    
            String packageName = appInfo.packageName;  //得到安装包名称  
            String version=info.versionName; //得到版本信息  
            int i=0;
            
     
            TextView tv = (TextView)findViewById(R.id.textView1); //TEXT显示  
            
            tv.setText("packageName:"+packageName+" version:"+version+"::"+info.activities[0].name
                    +"::");
            
            
        }
    }
       在编辑完代码后,我们要将123.apk放在模拟器的根目录下面,(模拟器下次重启就没了),首先执行adb shell mount -o rw,remount rootfs,重挂根目录为可读写。然后执行adb push 123.apk /。
       接下来启动我们的MAINACTIVITY,就可以看到打印出来的包和类名。截图如下
       接下来在adb shell 里面执行am 命令即可启动测试程序,希望和我一样的菜鸟,能通过这个傻瓜教程找到第三方包和类名。

分享到:
评论

相关推荐

    Android将Activity打成jar包供第三方调用

    同步项目后,就可以在第三方项目中通过类名来实例化和启动jar包中的Activity了。 **调用示例:** ```java Intent intent = new Intent(this, JarPackage.ActivityName.class); startActivity(intent); ``` 这里`Jar...

    最全面的 Android 编码规范指南.doc

    - 变量名和方法名使用小驼峰式命名,首字母小写,如`variableName`。 - 常量名全大写,单词间用下划线分隔,如`CONSTANT_NAME`。 5. 编程实践 - 注重代码可读性,避免过度复杂化。 - 使用适当的异常处理,避免...

    Android开发编码规范.pdf文件下载

    import语句应独立成行,不能使用通配符导入,且应按照特定的顺序和间距排列:首先是所有的静态导入,其次是com.googleimports(如果文件属于com.google包),然后是第三方包,每组内按字典序排列。 5. 类声明规则 ...

    android apk反编译

    1. **安装apktool**:你可以从其官方网站或者通过第三方包管理器(如Homebrew)获取apktool的最新版本。 2. **解压APK**:运行`apktool d <apk_file> -o <output_directory>`命令,其中`<apk_file>`是你要反编译的...

    Android开发编码规范

    import语句的顺序和间距也被规定,例如将静态导入独立成组,com.google包下的导入位于第三方包之前等,这些都按照字典序排列。 类声明部分,文件应只包含一个顶级类,并且每个类声明中的成员应该有明确的顺序。文档...

    Android编码规范

    - 第三方包按顶级包名称字典序排列。 4. **类声明** - **单一顶级类**:每个顶级类都应在与其同名的源文件中定义。 - **成员顺序**:建议按功能逻辑对成员进行分组和排序,以提高代码的可读性和可维护性。 - **...

    详解Android代码混淆实战

    默认情况下,如果启用了混淆,Proguard会尝试对所有类和第三方包进行混淆。但是,一些关键类和第三方库可能需要被排除在混淆之外,这就需要开发者根据应用的具体需求,编写特定的混淆规则文件(proguard-rules.pro)...

    tc-anywhere:可以在任何方法内添加try catch

    随时随地要解决的问题:有一些第三方包中存在一些崩溃问题,如果能try catch处理并不会影响程序运行,这时候就可以使用tc-anywhere来处理目标:可以在任何地方添加try catch操作;(目前只是实现了在方法无返回值的...

    Google Java编程风格指南

    - 第三方包。按顶级包名排序,如android, com, junit, org, sun等。 - java imports。 - javax imports。 #### 六、类声明 - **顶级类声明**: 每个源文件只包含一个顶级类声明,该类名与文件名相同。 - **类...

    Google Java编程风格规范

    - 第三方包。按顶级包名称的字典序排列,如android, com, junit, org, sun等。 - java imports。 - javax imports。 组内按字典序排列,且组内不允许空行。 **3.4 类声明** ##### 3.4.1 只有一个顶级类声明 - 每...

Global site tag (gtag.js) - Google Analytics