`
runfeel
  • 浏览: 927394 次
文章分类
社区版块
存档分类
最新评论

[Android] Android应用插件式开发解决方法

 
阅读更多

Android应用插件式开发解决方法

一、现实需求描述

一般的,一个Android应用在开发到了一定阶段以后,功能模块将会越来越多,APK安装包也越来越大,用户在使用过程中也没有办法选择性的加载自己需要的功能模块。此时可能就需要考虑如何分拆整个应用了。

二、解决方案提出

一般有两种方式,一种是将应用按照功能分拆成多个应用,用户需要哪个就下载哪个,都需要就都下载。应用之间,可以在代码层面做一定的关联,以共享部分信息。另一种方式,类似于其他平台插件的方式,用户可以在主应用中可以选择性的下载需要的插件,不需要该功能,则不需要下载。

第一种方式,只需要开发多个应用就够了。第二种方式稍微复杂,需要做很多额外的工作。这里我们简单讨论第二种方式的大致实现方法。

三、实现方法概述

有人可能会想到,是否可以像其他平台那样,下载一个类似于dll文件,或者jar包,就能自动识别并且加载该功能?可惜的是,在Android平台上是不允许直接动态加载jar包的,作者也没有想到类似办法。所以,想实现这种功能,还是要以独立APK的方式来加载。和第一种方式不同的是,从设计的角度,具体的插件是没有独立运行的入口的,也不允许有桌面图标存在,必须从主应用中打开,关闭后回到主应用。从用户的角度看,可以在应用中加载需要的功能并且使用,也就类似于其他平台插件的方式了。

为了实现这种方式,从设计的角度,就需要考虑清楚哪些功能作为独立的插件提供给用户,这里不再详述。下面从开发的角度说明大致需要做的工作。

Ø 主应用中需要开发的框架功能:

识别具体的插件是否已经安装(根据插件的package名)

如果已经安装要判断是否需要升级(服务器端获取最新的版本和本地的比较)

下载并且安装(或者升级)插件

卸载该插件

Ø 插件APK开发中需要注意的事项:

Manifest文件中不要提供启动的入口

Ø 主应用和插件之间交互的提示:

最好是使用相同的android:sharedUserId,插件可以方便的获取主应用的资源、数据库等等。

主应用可以以Intent方式启动具体的插件,同时带入Map类型参数或者json串参数,在插件APK中解析具体参数,实现业务逻辑。

三、其他说明

本博客内容并没有具体说明如何去实现,没有代码级别的说明。但是通过上面介绍的方式,开发者基本已经可以理解如何实现插件式的Android应用了。具体的,在开发过程中可能还会遇到很多问题,需要开发者自己摸索和完善。

---------------------------------------------------------------------------

GL(arui319

http://blog.csdn.net/arui319

<本文可以转载,但是请保留以上作者信息。谢谢。>

---------------------------------------------------------------------------

分享到:
评论

相关推荐

    android 占位式插件化开发例子

    3. **插件开发**:在独立的模块(即插件)中,实现`IPlugin`接口,提供具体的功能。插件通常被打包成单独的APK,与主应用分离。 4. **插件加载机制**:在主应用运行时,通过 DexClassLoader 或其他类加载器加载插件...

    android插件化开发插件包

    在Android平台上,插件化开发是一种技术,它允许开发者将应用程序的部分功能拆分成单独的模块,这些模块称为“插件”。这些插件可以在运行时动态加载到主程序中,而无需用户手动安装单独的APK文件。这为更新、扩展和...

    Android Studio移动应用开发PPT详解(微课版)

    Android移动应用开发(Android Mobile App Development)是一种利用Java编程...在开发Android应用程序时,可以使用Eclipse + Android开发工具(ADT)插件的集成开发环境,或使用Android Studio等一些其他的IDE工具。

    android插件化开发

    4. **android插件化开发.txt**:这份文档很可能是关于Android插件化开发的详细指南,涵盖了如何使用ApkPlug框架进行插件化开发的步骤、注意事项以及常见问题的解决方法。它可能包括了创建插件APK、集成框架、动态...

    AndroidStudio自定义Gradle插件

    2. 应用插件到模块或整个项目。在`apply`语句中指定插件ID,这通常是`com.example.myplugin`这样的形式。 3. 可选地,可以定义一个扩展类来配置插件。在`build.gradle`文件中,通过`ext`关键字创建扩展对象,并设置...

    安卓插件式开发

    安卓插件式开发是一种在Android平台上实现模块化、可扩展性的技术,它允许开发者将应用程序的功能拆分成多个独立的组件,这些组件被称为“插件”。这种开发模式使得应用的核心功能与扩展功能分离,提高了代码的复用...

    Android插件化开发Demo

    Android插件化开发是一种先进的技术,它允许开发者在应用程序运行时动态加载新的功能或更新,无需重新发布整个APP。这种技术的核心是利用Java的反射机制和Android系统的组件通信机制,使得主应用程序能够发现并调用...

    Android平台uni原生插件开发之通过uniapp引入原生插件

    2. **原生插件开发背景** 在uni-app中,有些特定的Android功能,如获取IMEI、使用蓝牙或访问硬件设备,由于安全或性能原因,不能直接在JavaScript层处理,这就需要通过原生插件来实现。原生插件可以是Java或Kotlin...

    android 程序开发的插件化

    在Android程序开发中,插件化技术是一种将应用程序的核心功能与可动态加载的模块分离的高级编程技巧。这种技术能够显著提升应用的灵活性、可扩展性和维护性。下面将详细介绍Android程序开发的插件化及其相关知识点。...

    Android-hydrogen是一个插件式的Android应用程序使用Lua开发

    "Android-hydrogen"项目就是一个这样的尝试,它提供了一个框架,允许开发者使用Lua来编写Android应用,并且支持插件化开发模式。 首先,我们要理解“插件化开发”。插件化开发是指将应用程序分解为多个独立的功能...

    Android Studio Html插件

    总之,Android Studio的Html插件极大地简化了在Android开发中处理HTML和CSS的过程,使得开发者可以在同一平台上完成Android应用的前后端开发。熟练掌握并利用好这类插件,可以提升开发体验,降低项目风险,是每个...

    (完整版)Android应用开发期末考试题.docx

    根据给定的文件信息,我们可以总结出以下几个方面的...通过以上分析,我们不仅了解了Android应用开发的基本概念和技术要点,还深入学习了一些具体的编程技巧和最佳实践。这对于Android开发者来说都是非常重要的知识点。

    安卓插件机制相关-Android插件开发框架插件化开发不再神秘.zip

    "安卓插件机制相关-Android插件开发框架插件化开发不再神秘.zip"这个压缩包显然包含了关于Android插件开发的相关资源,旨在帮助开发者理解并实践这一技术。 首先,我们来看"JavaApk源码说明.txt",这可能是对某个...

    Android studio插件集合

    本资源是一个“Android Studio插件集合”,它包含了多个常用且不易找到的插件,旨在帮助开发者更加高效地进行Android应用开发。 首先,我们来了解一下Android Studio插件的重要性。这些插件可以自动化常见的任务,...

    Android应用开发环境搭建

    Android 应用开发环境搭建是 Android 开发者的必备知识之一,本文将指导读者从零开始搭建 Android 应用开发环境,包括安装 JDK、Eclipse、ADT 插件和 Android SDK,并创建第一个 Android 应用程序 HelloWorld。...

Global site tag (gtag.js) - Google Analytics