Opracowałem SDK dla aplikacji Android. Mamy wielu klientów używających tego zestawu SDK w aplikacjach. Teraz zaktualizowałem mój SDK. Szukam sposobu, w jaki te zmiany mogą odzwierciedlić w tej aplikacji bez aktualizowania aplikacji w sklepie Play. Potrzebna pomoc. Każda pomoc zostanie doceniona. Dziękujemy z góry.Wdrażanie aktualizacji SDK OTA
7
A
Odpowiedz
4
Cóż można dynamicznie załadować plik jar z karty SD przy użyciu DexLoader klasy ... które można zaktualizować, gdy kiedykolwiek want..on Państwa magazynowanie ... poniżej kod działa ..
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);
i biblioteki kodu pliku może być tak
public class MainActivity {
public void doSomething() {
Log.e(MainActivity .class.getName(), "MainActivity : doSomething() called.");
}}
mi powiedzieć, jeśli potrzebujesz pomocy
1
Nie ma takiego sposobu dla twojej sytuacji. Ale jest jedna rzecz, którą możesz zrobić, aby włączyć ją do następnej aktualizacji. Android może dynamicznie ładować skompilowany kod za pomocą DexClassLoader. Więc skompiluj nowy plik DEX, a następnie zmuś SDK do pobrania i użycia go.
// 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) { ... }
Powiązane problemy
- 1. OTA dla Androida Rzeczy
- 2. Wdrażanie aktualizacji oprogramowania w wersji Beta i oprogramowania Sparkle
- 3. Wdrażanie Capistrano kończy się niepowodzeniem po aktualizacji do Rails 3.2.11
- 4. Problemy z dystrybucją OTA w przedsiębiorstwie iOS
- 5. Nie można znaleźć klasy po aktualizacji do Androida sdk 22
- 6. nie można uruchomić emulatora androida po aktualizacji sdk do 23.0.5
- 7. Nie można znaleźć pliku com.android.support:support-v4:22.0.0. po aktualizacji SDK
- 8. java.lang.ClassNotFoundException: Nie znaleziono klasy na ścieżce: DexPathList po aktualizacji SDK
- 9. Dziwny problem po aktualizacji do iOS 4.1 SDK
- 10. wyjątek java.lang.RuntimeException: nie można utworzyć wystąpienia komponentuInformacja po aktualizacji SDK
- 11. Facebook sdk nie jest błędem dylib po aktualizacji aktualizacji Xcode 7?
- 12. Wdrażanie MS - wdrażanie folderu na stronie internetowej
- 13. Wdrażanie HashMap
- 14. Aktualizacje OTA dla właściciela urządzenia Aplikacja Android (tryb kiosku)
- 15. Dystrybucja OTA AdHoc - jak zbudować IPA z linii poleceń?
- 16. Wdrażanie sprawnego systemu liczników "nieprzeczytanych komentarzy"
- 17. Wdrażanie Clickonce w wielu środowiskach
- 18. Czyszczenie "zestawów replik" podczas aktualizacji wdrożeń?
- 19. WPF SplashScreen wdrażanie
- 20. Zautomatyzowane wdrażanie Mercurial
- 21. Wdrażanie ostatniej funkcji
- 22. wdrażanie aplikacji pythonowych
- 23. Wdrażanie aplikacji na Androida
- 24. Wdrażanie projektu maven
- 25. React.js - Wdrażanie sortowania komponentów
- 26. Wdrażanie kodu Tornado
- 27. Wdrażanie aplikacji MS Lightswitch
- 28. Wdrażanie OpenID: identyfikacja użytkowników
- 29. Wdrażanie yii2 w podkatalogu
- 30. wdrażanie "findM" w Haskell?
Możesz zarzut wyjaśnij to nieco więcej. Chodzi mi o to, gdzie i jak wdrożyć ten kod i jak będzie przebiegał przepływ. czy to zadziała nad powietrzem? Z góry dziękuję. – 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 –