zoukankan      html  css  js  c++  java
  • Android插件开发

    插件开发的概念:

      对于一个功能特别多,代码量特别大的App比如支付宝、360手机助手来说,如果把所有的功能和代码都写在一个App中,就会造成App体积过于庞大,用户下载体验差,不方便测试,业务、模块耦合性过高等问题。插件开发就是指在一个APP中只完成基础和主要功能模块,对于其他可选的功能模块采用下载插件的方式实现。通常来讲,一个插件就是一个完成了某个功能模块的app,那么安装一个插件,就是安装一个具有该功能模块的apk文件。

    插件开发的解决方案:

      目前的插件开关解决方案主要有360的DroidPlugindynamic-load-apk携程的DynamicAPK 等等。其中360的DroidPlugin框架最为稳定。

    使用DroidPlugin的步骤:

    • 创建module,依赖DroidPlugin库:

      compile project(':Libraries:DroidPlugin')
    • 在Application中初始化DroidPlugin:

      public class MyApp extends Application {
          @Override
          public void onCreate() {
              super.onCreate();
              PluginHelper.getInstance().applicationOnCreate(getBaseContext());
          }
          @Override
          protected void attachBaseContext(Context base) {
              PluginHelper.getInstance().applicationAttachBaseContext(base);
              super.attachBaseContext(base);
          }
      }
    • 编写代码,实现安装插件功能:

      public void installNet(View v){
              String filepath = Environment.getExternalStorageDirectory()+"/app-minifyEnabled.apk";
              try {
                  PluginManager.getInstance().installPackage(filepath, 0);
                  Log.e(TAG, "installNet: 插件安装成功!");
              } catch (RemoteException e) {
                  e.printStackTrace();
              }
      }
    • 编写代码,实现启动插件功能:

      public void lanchPlugin(View v){
              PackageManager pm = getPackageManager();
              Intent intent = pm.getLaunchIntentForPackage("com.itheima.appthin98");
              intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
              startActivity(intent);
      }
  • 相关阅读:
    《SQL Server 2000设计与T-SQL编程》
    sql语句优化 (转)
    SQL Server优化50法(转)
    (转)SQL 优化原则
    sql 锁
    后台服务标准化运营
    ReactNative For Android 框架启动核心路径剖析
    手机QQ会员H5加速方案——sonic技术内幕
    微信支付商户系统架构背后的故事
    [干货] 有了微信小程序,谁还学ReactNative?
  • 原文地址:https://www.cnblogs.com/yegong0214/p/6511610.html
Copyright © 2011-2022 走看看