kandi background
Explore Kits

DroidPlugin | plugin framework | Plugin library

 by   DroidPluginTeam Java Version: 0.9.1 License: LGPL-3.0

 by   DroidPluginTeam Java Version: 0.9.1 License: LGPL-3.0

Download this library from

kandi X-RAY | DroidPlugin Summary

DroidPlugin is a Java library typically used in Plugin applications. DroidPlugin has no bugs, it has no vulnerabilities, it has a Weak Copyleft License and it has medium support. However DroidPlugin build file is not available. You can download it from GitHub.
A plugin framework on android,Run any third-party apk without installation, modification or repackage
Support
Support
Quality
Quality
Security
Security
License
License
Reuse
Reuse

kandi-support Support

  • DroidPlugin has a medium active ecosystem.
  • It has 6577 star(s) with 2532 fork(s). There are 506 watchers for this library.
  • It had no major release in the last 12 months.
  • There are 219 open issues and 188 have been closed. On average issues are closed in 161 days. There are 2 open pull requests and 0 closed requests.
  • It has a neutral sentiment in the developer community.
  • The latest version of DroidPlugin is 0.9.1
DroidPlugin Support
Best in #Plugin
Average in #Plugin
DroidPlugin Support
Best in #Plugin
Average in #Plugin

quality kandi Quality

  • DroidPlugin has 0 bugs and 0 code smells.
DroidPlugin Quality
Best in #Plugin
Average in #Plugin
DroidPlugin Quality
Best in #Plugin
Average in #Plugin

securitySecurity

  • DroidPlugin has no vulnerabilities reported, and its dependent libraries have no vulnerabilities reported.
  • DroidPlugin code analysis shows 0 unresolved vulnerabilities.
  • There are 0 security hotspots that need review.
DroidPlugin Security
Best in #Plugin
Average in #Plugin
DroidPlugin Security
Best in #Plugin
Average in #Plugin

license License

  • DroidPlugin is licensed under the LGPL-3.0 License. This license is Weak Copyleft.
  • Weak Copyleft licenses have some restrictions, but you can use them in commercial projects.
DroidPlugin License
Best in #Plugin
Average in #Plugin
DroidPlugin License
Best in #Plugin
Average in #Plugin

buildReuse

  • DroidPlugin releases are available to install and integrate.
  • DroidPlugin has no build file. You will be need to create the build yourself to build the component from source.
  • Installation instructions are not available. Examples and code snippets are available.
DroidPlugin Reuse
Best in #Plugin
Average in #Plugin
DroidPlugin Reuse
Best in #Plugin
Average in #Plugin
Top functions reviewed by kandi - BETA

kandi has reviewed DroidPlugin and discovered the below as its top functions. This is intended to give you an instant insight into DroidPlugin implemented functionality, and help decide if they suit your requirements.

  • Display the given code as a string .
  • Called when an uncaught exception occurs .
  • Fills the system service in the given context .
  • Make sure the source directory is correct .
  • Checks to see if a notification is a plugin notification .
  • Resolve an intent .
  • load all plugins
  • Invokes the method
  • Get provider info
  • Get the content provider client

DroidPlugin Key Features

A plugin framework on android,Run any third-party apk without installation, modification or repackage

default

copy iconCopydownload iconDownload
## Problems to be solved:

 1. Unable to send `Notification` with custom Resources,eg:

     a.  Notification with custom RemoteLayout, which means `Notification`'s `contentView`,`tickerView`,
     `bigContentView` and `headsUpContentView` must be null.

     b.  Notification with icon customized by R.drawable.XXX. The framework will transform it to Bitmap instead.

 2. Unable to define specified `Intent Filter` for the plugged app's `Service`、`Activity`、`BroadcastReceiver`
 and `ContentProvider`. So the plugged app is invisible for the outside system and app.

 3. Lack of `Hook` to the `Native` layer, thus apk (e.g. a majority of game apps) with `native` code cannot be loaded as plugin.

## Features:
  1. Compatible to Android 2.3 and later versions
  2. Given its .apk file, the plugged app could be run either independently or as plugin of the host, **NO** source code needed.
  3. Unnecessary to register the plugged app's `Service`、`Activity`、`BroadcastReceiver`、`ContentProvider` in the host.
  4. The plugged app are recognized as *Installed* by the host and other plugged apps
  5. Very low level of code invasion, in deed just one line code to integrate DroidPlugin into the host app.
  6. Complete code level separation between host and plugged apps, only system level message passing method provide by Android allowed.
  7. All system API supported
  8. Resources management are also completely separated between host and plugged apps.
  9. Process management for plugged apps, idle processed of the plugged app will be timely recycled to guarantee minimum memory usage.
  10. Static broadcast of plugged app will be treated as dynamic, thus the static broadcasting will never be trigger if
  the plugged app are not activated.

## Usage:

#### Integrate with the host apps

It is very simple integrate Droid Plugin to your proejct:

1. Import Droid Plugin project to your project as a lib.

2. Include following attributes in host's `AndroidManifest.xml`:

		<application android:name="com.morgoo.droidplugin.PluginApplication"
			android:label="@string/app_name"
			android:icon="@drawable/ic_launcher" >


3. Or, if you use customized `Application`,add following code in the methods `onCreate` and `attachBaseContext`:

		@Override
		public void onCreate() {
			super.onCreate();
			PluginHelper.getInstance().applicationOnCreate(getBaseContext()); //must be after super.onCreate()
		}

		@Override
		protected void attachBaseContext(Context base) {
			PluginHelper.getInstance().applicationAttachBaseContext(base);
            super.attachBaseContext(base);
		}

4. Modify the `authorityName` value in `Libraries\DroidPlugin\build.gradle` (suggested use your package name)

#### Install、Uninstall or Upgrade the plugged app:

1. **Install/Upgrade**, use this method:

		int PluginManager.getInstance().installPackage(String filepath, int flags);

	For installation, `filepath` set to path of the .apk file, and `flags` set to 0.

	For upgrade, `filepath` set to path of the .apk file, and  `flags` set to `PackageManagerCompat.INSTALL_REPLACE_EXISTING`.


2. **Uninstall**, use this method:

		int PluginManager.getInstance().deletePackage(String packageName,int flags);

	`packageName` is package name of the plugged app,`flags = 0`。

3. **Activate**

    Just use android's API, same for communication between components.

## FAQ

 [FAQ](https://github.com/DroidPluginTeam/DroidPlugin/wiki/FAQ "FAQ")

## Remark:

Please feel free to [report bugs](https://github.com/Qihoo360/DroidPlugin/issues) or ask for help via email.
QQ Group:318901026

##Who is using Droid Plugin?

 [360 App Store](http://sj.360.cn "360 App Store")


### Thanks:

    Translated by Ming Song(gnosoir@hotmail.com)

Community Discussions

Trending Discussions on DroidPlugin
  • How to achieve Dynamic code Loading in Android?
Trending Discussions on DroidPlugin

QUESTION

How to achieve Dynamic code Loading in Android?

Asked 2021-Feb-26 at 15:37

Objective:

I have an android application (main) from which I want to download (jar, apk, or any sort of package) and load the package dynamically and start the main activity of my loaded package from my main application.

The solutions I have tried:

I have followed this blog post and try to load the app using DexClassLoader https://medium.com/@kalpeshchandora12/dynamic-code-loading-in-android-dea83ba3bc85#:~:text=DCL(Dynamic%20code%20loading)%20allows,location%20and%20executed%20at%20runtime. I am able to follow all the step and able to load the class from the downloaded apk, now I don't know how to call the main activity of the loaded apk.

I have followed this plugin(https://github.com/DroidPluginTeam/DroidPlugin), which is telling me that I can dynamically load the apk from the server, and then I can install it in the background and then can run it by any communication method (broadcasting, AIDL, etc.) but while following the plugin, I have encountered an error (sort of I/O error while opening APK), it's not able to open my apk for installation.

I don't know if whatever I tried is correct or not and I am not an android guy, instead, I am a unity guy and trying to run my games (I have almost 50) within android applications. There is no choice of loading the game statically in the android project because it severely increases the size.

Please recommend me an approach to achieve this task or if anyone can guide me on how to solve the problems that I am facing.

ANSWER

Answered 2021-Feb-26 at 15:37

It sounds like you need look at Feature Delivery.

Source https://stackoverflow.com/questions/66388409

Community Discussions, Code Snippets contain sources that include Stack Exchange Network

Vulnerabilities

No vulnerabilities reported

Install DroidPlugin

You can download it from GitHub.
You can use DroidPlugin like any standard Java library. Please include the the jar files in your classpath. You can also use any IDE and you can run and debug the DroidPlugin component as you would do with any other Java program. Best practice is to use a build tool that supports dependency management such as Maven or Gradle. For Maven installation, please refer maven.apache.org. For Gradle installation, please refer gradle.org .

Support

For any new features, suggestions and bugs create an issue on GitHub. If you have any questions check and ask questions on community page Stack Overflow .

DOWNLOAD this Library from

Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from
over 430 million Knowledge Items
Find more libraries
Reuse Solution Kits and Libraries Curated by Popular Use Cases

Save this library and start creating your kit

Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from
over 430 million Knowledge Items
Find more libraries
Reuse Solution Kits and Libraries Curated by Popular Use Cases

Save this library and start creating your kit

  • © 2022 Open Weaver Inc.