Nano Hash - криптовалюты, майнинг, программирование

Android APK внутри APK?

Как указано в моем вопросе выше, возможно ли иметь файл apk внутри другого apk? Для дальнейшего объяснения, вот моя ситуация:

У меня есть два приложения, и первое вызывает другое через намерение. У меня нет проблем с этим. Но мне нужно установить только один файл apk вместо двух. И первое, что пришло мне в голову, это поместить файл .apk внутрь другого файла .apk. Я действительно не знаю, возможно ли это, поэтому мне нужно ваше мнение по этому поводу. Но если это невозможно, я надеюсь, что кто-нибудь может сказать мне, как лучше всего делать такие вещи.

Я могу сделать это как одно приложение, но это будет мое последнее решение.

26.01.2011

Ответы:


1

Возможно, вам нужна Android-библиотека. Это место, где вы можете поместить некоторый общий код и включить его в несколько приложений (apks).

См. эту документацию по проектам библиотек.

26.01.2011
  • Спасибо за информацию. Это, безусловно, помогает. 26.01.2011

  • 2

    Я только что сделал это прямо сейчас ...

    Я положил apk 2 в raw/embeddedapk.apk

    затем этот код ... запустил установщик для apk 2 ... ** проблема, если телефон пользователя не разрешает приложение не из рынка .. он не сможет установить apk 2 ...

    не забудьте удалить временный файл, когда установка будет завершена ....

    try {
        InputStream in = this.getResources().openRawResource(R.raw.embeddedapk);
    
        byte[] b = new byte[in.available()];
        int read = in.read(b);
        toast(read + " byte read");
    
        String tempFileName = "embeddedapk.apk";
        FileOutputStream fout = openFileOutput(tempFileName, MODE_WORLD_READABLE);
    
        fout.write(b);      
        fout.close();
        in.close();
    
        File tempFile = getFileStreamPath(tempFileName);
        Intent i = getFileActionIntent(Intent.ACTION_VIEW, tempFile);
    
        startActivity(Intent.createChooser(i, "sdsds"));
    }
    catch (Exception ex){
        Log.e("ero", "erer", ex);
    }
    

    Моя причина в том, что я хочу, чтобы пользовательский интерфейс apk 1 и поставщик данных apk 2 были отдельными приложениями на рынке. но я не хочу, чтобы пользователи отключались по отдельности при первой установке ...

    • apk 1 нужны данные из apk 2, apk 2 не имеет никаких действий..

    • Когда пользователь загружает apk 1 с рынка, я хочу автоматически установить apk 2 ...

    • Я хочу иметь возможность обновлять (рынок) apk1 и apk 2 независимо друг от друга ...

    30.01.2012
  • насчет getFileStreamPath и getFileActionIntent... можешь и это опубликовать? 18.12.2012
  • Intent.createChooser(i, "sdsds") самое главное! 27.01.2014
  • Что делать, если приложение находится на торговой площадке или в Play Store, но вы просто устанавливаете его из своего второго APK, чтобы избавить пользователя от необходимости загружать несколько приложений? Если подпись/двоичный файл такой же, как в Play Store? 08.03.2017

  • 3

    Извините, вам не повезло, если вы хотите APK внутри APK.

    Android не позволяет вам это сделать.

    Но мне любопытно, почему вы хотели бы это таким образом ?? Вы можете вызывать одно действие из другого, даже если они находятся в одном и том же APK.

    26.01.2011
  • да, это то, что я сказал в последней части моего вопроса. Но мне просто интересно, возможно ли это. Дело в том, что я сделал первое приложение без оглядки на второе приложение. И тогда я решил взаимодействовать с ними двумя. Но тогда мне все равно придется устанавливать их по одному. Вот как я придумал свой вопрос.. Спасибо. 26.01.2011
  • Если они находятся в одном и том же APK, они все равно могут звонить друг другу, хотите знать, как?? 26.01.2011

  • 4

    Вы можете запрограммировать его как одно приложение и иметь два средства запуска, чтобы оно выглядело для пользователя как два автономных приложения.

    Вы также можете попытаться запустить намерение и поймать случай, когда никто не реагирует на него. Чем можно открыть маркет и порекомендовать установить приложение тоже.

    Последний способ в основном используется приложениями, которым нужны файловые браузеры для выбора файлов. Они отправляют намерение, и если файловый браузер не установлен, они вызывают тост, информирующий о том, что для выполнения задачи необходим файловый браузер, и открывают рыночную страницу astro, файлового менеджера OI или другого приложения, которое они предпочитают...

    26.01.2011
    Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..