Я разработал SDK для приложений для Android. У нас есть много клиентов, использующих этот SDK там, где есть приложения. Теперь я обновил свой SDK. Я ищу способ, который эти изменения могут отразить в приложении без уточнения там app на play store.Urgent помощь need.Any помощь будет оценена. Спасибо заранее.Продвижение обновления SDK OTA
7
A
ответ
4
Ну вы можете динамически загружать файл банка с вашей SD карты с помощью DexLoader класса ... который вы можете обновлять, когда все вы want..on вашего хранилища ... ниже работает код ..
final String libPath = Environment.getExternalStorageDirectory() + "/test.jar";
final File tmpDir = getDir("dex", 0);
final DexClassLoader classloader = new DexClassLoader(libPath, tmpDir.getAbsolutePath(), null, this.getClass().getClassLoader());
final Class<Object> classToLoad = (Class<Object>) classloader.loadClass("com.test.android.MainActivity");
final Object myInstance = classToLoad.newInstance();
final Method doSomething = classToLoad.getMethod("doSomething");
doSomething.invoke(myInstance);
и в коде файла библиотеки может быть, как это
public class MainActivity {
public void doSomething() {
Log.e(MainActivity .class.getName(), "MainActivity : doSomething() called.");
}}
скажите мне, если вам нужна помощь
1
нет такого способа для вашей ситуации. Но есть одно, что вы можете сделать, чтобы включить его для следующего обновления. Android может динамически загружать скомпилированный код с DexClassLoader. Итак, вы компилируете новый DEX-файл, а затем заставляете свой SDK загружать и использовать его.
// Internal storage where the DexClassLoader writes the optimized dex file to
final File optimizedDexOutputPath = getDir("outdex", Context.MODE_PRIVATE);
DexClassLoader cl = new DexClassLoader(dexInternalStoragePath.getAbsolutePath(),
optimizedDexOutputPath.getAbsolutePath(),
null,
getClassLoader());
Class libProviderClazz = null;
try {
// Load the library.
libProviderClazz =
cl.loadClass("com.example.dex.lib.LibraryProvider");
// Cast the return object to the library interface so that the
// caller can directly invoke methods in the interface.
// Alternatively, the caller can invoke methods through reflection,
// which is more verbose.
LibraryInterface lib = (LibraryInterface) libProviderClazz.newInstance();
lib.showAwesomeToast(this, "hello");
} catch (Exception e) { ... }
Смежные вопросы
- 1. NSFileProtectionKey удаляется после обновления iOS 8 OTA?
- 2. Возможно ли приложение для обновления OTA
- 3. Обновление для OTA Android
- 4. OTA - ALM 11.52 - Построение диаграмм через OTA
- 5. Ota Обновление в AOSP
- 6. linux kernel ota framework?
- 7. Опасность для OTA в Debian
- 8. Могут ли обновления iOS заставлять OTA без DEP?
- 9. Загрузка обновления приложения OTA от Amazon Aws s3 iOS
- 10. Обновления OTA для приложения Device Owner Android (режим киоска)
- 11. Обновление приложения OTA
- 12. Обновление прошивки OTA с BLE113
- 13. Продвижение API
- 14. Продвижение сайта?
- 15. Интегральное продвижение
- 16. Сложность обновления Android SDK
- 17. ошибка после обновления sdk
- 18. UserCannotBeAlteredWithoutSessionError после обновления SDK
- 19. Продвижение внутренней указатель строки после каждого обновления страницы
- 20. Facebook JS SDK & PHP SDK без обновления?
- 21. OTA midlet issue
- 22. OTA SMS в Android
- 23. OTA для Android
- 24. .ipa установка через OTA
- 25. OTA и несоответствие ядра
- 26. Проблема OTA iphone
- 27. Установка приложений OTA
- 28. Установка J2Me через OTA
- 29. Интегрируйте встроенную функцию обновления в оболочку, чтобы получать обновления OTA, когда есть
- 30. Поле даты обновления поля SDK
можете ли вы о признании вины я объясню это немного больше. Я имею в виду, где и как реализовать этот код и как будет проходить поток. Будет ли это работать над воздухом? Спасибо заранее. – Scorpio
@HarrySharma, https://www.google.com.ua/webhp?sourceid=chrome-instant&ion=1&espv=2&es_th=1&ie=UTF-8#q=android%20dexclassloader%20example&es_th=1 –