Чисто консольное приложение для Android?

#java #android #logging #android-emulator #console-application

#java #Android #ведение журнала #android-эмулятор #консольное приложение

Вопрос:

Возможно ли создать чистое консольное приложение для Android, которое будет запускаться в эмуляторе Android?

Я имею в виду, что мы можем запускать классические настольные Java-приложения, которые используют System.out.println для вывода на консоль, поэтому я не понимаю, почему мы не можем сделать то же самое для Android через android.util.Log классы.

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

Возможно, файл dex без Application , Activity класса и AndroidManifest.xml

Как лучше всего это сделать?

Комментарии:

1. Ваше приложение должно иметь манифест, и, насколько мне известно, если в нем не указано действие запуска, оно либо не будет компилироваться, либо ничего не будет делать. Что, по-вашему, произойдет при запуске такого приложения в любом случае? В нем нет встроенного консольного приложения для его запуска, как в настольных ОС. Система Android предназначена для запуска приложений, которые используют действия и службы без пользовательского интерфейса, а не программы командной строки.

2. Может быть, что-то вроде метода AndroidMain() для выполнения некоторой обработки с помощью операторов Log для записи выходных данных в logcat, а затем завершения. Не имеет значения, если оно без окон.

Ответ №1:

Нет метода «AndroidMain». Вы можете выполнить это с помощью основного действия без пользовательского интерфейса или запуска службы.

Например.

AndroidManifest.xml

 <application
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name">

    <activity android:name=".MainActivity">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

    <service android:name=".MyService" />
</application>
  

MainActivity.java

 public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        Intent i = new Intent(this, MyService.class);
        startService(i);
        finish();
    }
}
  

MyService.java

 public class MyService extends IntentService {

    public MyService() {
        super("MyService");
    }

    @Override
    protected void onHandleIntent(Intent intent) {
        Log.i("MyService", "Hello world!");
    }
}
  

Комментарии:

1. Тоже спасибо, но как насчет ЧИСТЫХ консольных приложений, таких как установщик консольных пакетов через PackageManager, Который можно запустить с консоли Android с помощью pm install <appfile> команды и т. Д.?