Выполнение: сделайте из gVim в Фоне

Вы можете использовать либо метод buildConfigField , либо метод resValue блока buildType в плагине Android Gradle. Первый генерирует глобальные константы Java, а второй - ресурсы Android.

Вы можете просмотреть официальные документы, демонстрируя пример использования здесь .

В любом случае, я уточню здесь, если это поможет.

Сначала вы определяете одно или несколько полей конфигурации или значения res в вашем файле build.gradle. В качестве примера для идентификатора AdMob вы должны определить строковые константы.

android {
    buildTypes {
        release {
            buildConfigField "String", "ADMOB_ID", '"ConstantIdForRelease"'
            resValue "string", "admob_id", "StringResourceForRelease"
        }
        debug {
            buildConfigField "String", "ADMOB_ID", '"ConstantIdForDebug"'
            resValue "string", "admob_id", "StringResourceForDebug"
        }
}

При этом будут созданы BuildConfig.java и временные generated.xml файлы для вариантов выпуска и отладки:

Релиз:

/ app / build / сгенерированный / source / buildConfig / релиз /your/package/app/BuildConfig.java:

public final class BuildConfig {
    public static final String ADMOB_ID = "ConstantIdForRelease";
}

/ app / build / генерированный / res / resValues ​​/ выпуск ] /values/generated.xml



    
    StringResourceForRelease

Отладка:

/ app / build / generate / source / buildConfig / debug / your /package/app/BuildConfig.java:

public final class BuildConfig {
    public static final String ADMOB_ID = "ConstantIdForDebug";
}

/ app / build / generate / res / resValues ​​/ debug /values/generated.xml



    
    StringResourceForDebug

[1126 ] Затем в вашем коде вы просто используете константу или ресурс, как обычно:

callMethodThatNeedsAdModId(BuildConfig.ADMOB_ID);
// OR
callMethodThatNeedsAdModId(context.getString(R.string.admob_id));

Фактическое значение переменной конфигурации сборки или строкового ресурса будет определяться на основе текущего типа / варианта сборки. [ 1127]

В любом случае, так что вы должны использовать? Если вам нужен доступ к строке конфигурации в ресурсах XML (скажем, вы хотите изменить label действия в файле AndroidManifest.xml при отладке), вы должны использовать этот ресурс. В противном случае просто используйте свойство build config, так как вам не нужен контекст для доступа к нему.

Надеюсь, это поможет!

34
задан Amjith 23 February 2011 в 20:54
поделиться

4 ответа

То, что я делаю,

:!gvim -c 'MyMake'

(где MyMake является пользовательской командой, которая может переключиться на соответствующий dir, сделать, и copen 20.)

и я делаю свое задание, в то время как сборка входит в другое окно.

Другая опция:
можно перенаправить, делают успехи в некоторый файл от оболочки или в энергии (:! make&). И затем при помощи

:cfile make_result_file

:cw
 or
:copen 20 

Достигают того же результата, как Вы использовали бы: сделайте

18
ответ дан Mykola Golubyev 27 November 2019 в 17:08
поделиться

Попытайтесь использовать

:!start make

(больше информации о ": справка! запустите") - тот способ, которым энергия не должна ожидать процесса, запущенного для окончания - можно просто продолжить идти с редактированием).

5
ответ дан Rook 27 November 2019 в 17:08
поделиться

Я использовал бы встроенные методы Вашей ОС для выполнения фоновых задач.

окна On, попытайтесь ввести

:!start make

На Linux / Mac OS X, попробуйте

:!make > /dev/null 2>&1 &
1
ответ дан gar 27 November 2019 в 17:08
поделиться

Вы не будете в состоянии видеть, что прогресс делает (в Vim), если Вы не устанавливаете очень последнюю версию Vim (v7.4 и много патчей или просто Vim 8). Теперь существует несколько плагинов, это использовало в своих интересах его. Мой BuildToolsWrapper является одним из них. Я протестировал его успешно на Linux и на окнах.

Прежде, который нам были нужны другие приемы. Я помню плагин Marc Weber, который смог эмулировать фоновую компиляцию в Windows. Были немногие другие. Я позволяю другим перечислить их.

1
ответ дан Luc Hermitte 27 November 2019 в 17:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: