Android - APK внутри APK - PullRequest
       7

Android - APK внутри APK

0 голосов
/ 05 июня 2019

Допустим, у меня есть 2 приложения для моей школы:

student.apk: Ученик входит в систему, проверяет оценки, проверяет время занятий, делает много вещей.

teacher.apk: Учитель входит в систему, оценивает результаты, список посещаемости и т. Д.

Можно ли создать всего 1 apk с экраном входа в систему, определить, является ли он студентом илиа учитель а чем шлепать правильный апк?

По сути, я спрашиваю, могу ли я поместить эти 2 apks (ученик и учитель) в один код (login.apk).

Приложения совершенно разные, и это будетобъединить очень сложно, чем в один, поэтому я хотел бы запустить их внутри простого "login.apk"

Ответы [ 3 ]

4 голосов
/ 05 июня 2019

Не уверен, что это возможно.Но я считаю, что лучшим подходом было бы использовать динамическую доставку для достижения этой цели.Объединение учителя и ученика в виде модулей динамических функций и их динамическая загрузка во время выполнения в зависимости от состояния входа в систему.

Более подробную информацию можно найти здесь: https://developer.android.com/studio/projects/dynamic-delivery

И учебное пособие здесь: https://medium.com/mindorks/dynamic-feature-modules-the-future-4bee124c0f1

0 голосов
/ 05 июня 2019

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

    try {
        //launch the app if it exists 
        Intent intent = new Intent("teacher app signature here");
        intent.putExtra("some_parameter_name", "parameter value");
    } catch (Exception e) {
        // here is the case where the app is not installed
        Uri marketUri = Uri.parse("market://details?id=teacher app signature here");
        Intent marketIntent = new Intent(Intent.ACTION_VIEW, marketUri);
        startActivity(marketIntent);
    }

в приложении учителя, вам нужно будет перехватить это намерение и его параметры:

    String param= (String) getIntent().getSerializableExtra("some_parameter_name");

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

0 голосов
/ 05 июня 2019

Да, это должно быть возможно. Я не проверял это все же. Создайте третье приложение (login.apk), которое содержит и student.apk, и teacher.apk. Как только пользователь вошел в систему в login.apk, правильный apk sub может быть экспортирован / сохранен из проекта на внутреннее / внешнее хранилище устройства (разрешение на чтение и запись требуется для login.apk), затем просто запустите экспортированный apk из login.apk, открыв его -> Установщик пакета установит его (требуется взаимодействие с пользователем).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...