当前位置: 首页 > news >正文

360免费建站官网入口/南宁网站建设

360免费建站官网入口,南宁网站建设,wordpress 批量审核,东莞网站建设推广咨询平台2019独角兽企业重金招聘Python工程师标准>>> 正文 一、前提 目的:动态加载SD卡中Apk的类。 注意:被加载的APK是未安装的。 相关:本文是本博另外一篇文章:Android动态加载jar/dex的升级版。 二、准备 准备被调用Android…

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

正文

  一、前提

    目的:动态加载SD卡中Apk的类。

    注意:被加载的APK是未安装的。

    相关:本文是本博另外一篇文章:Android动态加载jar/dex的升级版。

  二、准备

    准备调用Android工程:TestB

    ITest

public  interface ITest {
    String getMoney();
}

     TestBActivity

复制代码
public  class TestBActivity  extends Activity  implements ITest {
     /**  Called when the activity is first created.  */
    @Override
     public  void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }

    @Override
     public String getMoney() {
         return "1";
    }

}
复制代码

    代码说明:很简单的代码。将生成后的TestB.apk拷贝到SD卡的根目录下。

 

  三、调用 

    调用工程TestA

复制代码
public  class TestAActivity  extends Activity {
     /**  Called when the activity is first created.  */
    @Override
     public  void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        String path = Environment.getExternalStorageDirectory() + "/";
        String filename = "TestB.apk";
        DexClassLoader classLoader =  new DexClassLoader(path + filename, path,
                 null, getClassLoader());

         try {
            Class mLoadClass = classLoader.loadClass("com.nmbb.TestBActivity");
            Constructor constructor = mLoadClass.getConstructor( new Class[] {});
            Object TestBActivity = constructor.newInstance( new Object[] {});
            
            Method getMoney = mLoadClass.getMethod("getMoney",  null);
            getMoney.setAccessible( true);
            Object money = getMoney.invoke(TestBActivity,  null);
            Toast.makeText( this, money.toString(), Toast.LENGTH_LONG).show();
            
        }  catch (ClassNotFoundException e) {
            e.printStackTrace();
        }  catch (SecurityException e) {
            e.printStackTrace();
        }  catch (NoSuchMethodException e) {
            e.printStackTrace();
        }  catch (IllegalArgumentException e) {
            e.printStackTrace();
        }  catch (InstantiationException e) {
            e.printStackTrace();
        }  catch (IllegalAccessException e) {
            e.printStackTrace();
        }  catch (InvocationTargetException e) {
            e.printStackTrace();
        }
    }
}
复制代码

    执行的时候可以发现会自动生成TestB.dex文件。动态加载方面还可以搜索一下"Java动态加载"方面的资料,很有参考价值。可以发现比Android动态加载jar/dex使用起来方便得多。

 

  四、下载

    TestA.zip

    TestB.zip    

 

  五、注意

    6.1  别忘了加上SDCARD的写权限:

      android.permission.WRITE_EXTERNAL_STORAGE

    6.2  同样注意,不要再两个工程包含package和名称相同的接口,否则报错。(参见Android动态加载jar/dex的后期维护)

 

  六、扩展阅读

    探秘腾讯Android手机游戏平台之不安装游戏APK直接启动法

    (强烈推荐:QQ游戏动态调用Activity的方法:通过ClassLoader,loadClass Activity类,然后分别在主工程的onDestroy、onKeyDown、onPause、onRestart、onResume等生命周期方法中反射调用(Method、invoke)子工程的类方法来模拟实现整个生命周期。此外巧妙的通过解压缩APK文件来获取游戏的资源)

    Android中文Wiki:DexFile

 

  七、缺点

    6.1  由于是使用反射,无法取得Context,也就是TestBActivity与普通的类毫无区别,没有生命周期。

 

  八、推荐

    Android版 程序员专用搜索


结束 

  忙着换工作、忙着把翻译组转动Wiki平台、忙着推广翻译组...忙这忙那的,博客已经有近2个月没有写Android方面的文章,终于又可以回来,继续挤时间来写博客,与大家一同探讨与分享。 

转载于:https://my.oschina.net/xiahuawuyu/blog/68426

http://www.jmfq.cn/news/4868623.html

相关文章:

  • 做网站卖衣服物流包年多少钱/百度智能小程序怎么优化排名
  • 网站开发合同变更/云搜索
  • 政府机关网站建设/软文客
  • 学建设网站首页/合肥百度关键词推广
  • 余姚网站建设报价/动态网站建设
  • 辽宁城乡建设委员会网站/网站统计平台
  • 机械厂做的网站模板叫什么/谷歌平台推广外贸
  • 做图网站有哪些/网易搜索引擎
  • 北京协会网站建设/中文网站排名
  • 政府门户网站建设总结/为什么不建议去外包公司上班
  • 网站管理员登陆域名/如何用google搜索产品关键词
  • 福州小程序开发案例/广州seo运营
  • 邯郸移动网站制作/公关负面处理公司
  • 关键词seo公司真实推荐/南宁关键词优化服务
  • 义乌婚介网站建设/seo站长论坛
  • 效果图网站都有哪些?/营销计划书7个步骤
  • 宿州官方网站建设/有人看片吗免费观看视频
  • 怎么做ps4的视频网站/百度推广找谁做靠谱
  • 网站建设及推广方案ppt模板/营销方式有哪些
  • 郑州网站设计网站/深圳seo培训
  • 河南平台网站建设找哪家/国外引擎搜索
  • 专门做二手手机的网站吗/seo黑帽教程视频
  • 一女被多男做的视频网站/武汉seo网站推广培训
  • 建网站怎么备案/百度移动首页
  • 保定网站制作公司/优化是什么意思
  • 网站的说服力/推广关键词如何优化
  • 公司网站建设费分录/seo推广代运营
  • 禁止粘贴的网站/公司建立网站的步骤
  • 深圳找网站建设/网站优化是做什么的
  • 装饰设计学校/青岛网站seo分析