Можно ли разрабатывать и отлаживать приложения для Android на Chromebook?
Я использую гренки для создания рабочего стола Linux на моем Chromebook. Здесь я установил Android Studio и начал работать над простым приложением для Android. Я могу создать apk, переместить его в папку "Downloads", а затем переключиться с linux на ChromeOS и запустить приложение. (Я использую APK Installer - работает отлично).
Я хотел бы видеть LogCat из моего приложения (ну, на самом деле я хотел бы видеть всю диагностику, которую вы получаете при работе в эмуляторе в Android Studio - но я бы согласился на LogCat).
Все, что я читал об использовании adb, предполагает, что у вас будет компьютер разработчика, на котором находится Android Studio, и целевой компьютер, на котором работает ваше приложение. Используя crouton, рабочий стол linux и ChromeOS находятся на одном компьютере, и одновременно может работать только один, поскольку они совместно используют одни и те же ресурсы и т. Д. Я попробовал несколько приложений, но ни одно из них не смогло показать logcat из моего приложения, работающего на Chromebook - они даже не признают, что он работает. Кто-нибудь получил какие-либо идеи о том, как просмотреть logcat для этой конкретной установки?
1 ответ
До сих пор я нашел способ получить logcat и согласен на это... сейчас
В основном Activity onCreate вызовите этот метод;
public static void saveLogcatToFile(Context context) {
File outputFile = new File(context.getFilesDir(), "logcat.txt");
try {
@SuppressWarnings("unused")
Process process = Runtime.getRuntime().exec("logcat -df " + outputFile.getAbsolutePath());
} catch (IOException e) {...
В onCreate другого Activity заполните TextView с помощью logcat, используя;
public static String readLogcatFromFile(Context context) {
File logFile = new File(context.getFilesDir(), "logcat.txt");
if (logFile.exists() == false) { ...
String logContents = context.getString(R.string.EMPTY_STRING);
FileInputStream fileInStream = null;
try {
fileInStream = new FileInputStream(logFile);
logContents = convertStreamToString(fileInStream);
} catch (Exception e) { ...
} finally { ...
fileInStream.close();
}
return logContents;
}
private static String convertStreamToString(InputStream is) throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(is));
StringBuilder sb = new StringBuilder();
String line = null;
while ((line = reader.readLine()) != null) {
sb.append(line).append("\n");
}
reader.close();
return sb.toString();
}
Журналы продолжают добавляться для каждого запуска, пока вы не удалите (это удалит файл журнала). Я нахожу это особенно полезным, когда я что-то ломаю, и мое приложение просто умирает при запуске, так как я могу вернуться к предыдущей фиксации и посмотреть в журналах, чтобы увидеть, что произошло