Главная / Программирование / Разработка приложений для Android 4.0

Разработка приложений для Android 4.0 - ответы на тесты Интуит

Правильные ответы выделены зелёным цветом.
Все ответы: Целью тестирования является определение уровня знаний разработчиков для платформы Android версии 4.0.
Смотрите также:
Требуется определить, разрешается ли пакету com.company.app начать телефонный звонок без обращения к Диалоговому интерфейсу. Какой фрагмент кода может быть использован для этого?
(1) context.getPackageManager().checkPermission("android.permission.MODIFY_PHONE_STATE", "com.company.app");
(2) context.getPackageManager().checkPermission("android.permission.CALL_PHONE", "com.company.app");
(3) context.getPackageManager().checkPermission("com.company.app", "android.permission.MODIFY_PHONE_STATE");
(4) context.checkPermission("com.company.app", "android.permission.CALL_PHONE");
(5) PackageManager.get("com.company.app").validatePermission("android.permission.CALL_PHONE");
Одиночное действие должно быть определено в файле AndroidManifest.xml и доступно под двумя названиями, с двумя отдельными наборами фильтров. Какой атрибут для этого используется?
(1) <secondary-name>
(2) <copy-activity>
(3) <alternate-name>
(4) <activity-alias>
(5) <alternate-alias>
Одиночное действие должно быть определено в файле AndroidManifest.xml и доступно под двумя названиями, с двумя отдельными наборами фильтров. Какой атрибут для этого используется?
(1) <copy-activity>
(2) <alternate-alias>
(3) <alternate-name>
(4) <secondary-name>
(5) <activity-alias>
Реализован простой класс, осуществляющий SQLiteOpenHelper. Также данный класс содержит методы для выполнения различных операций с базами данных, таких как создание записей клиентов. Большинство операций используют простой метод execSQL(). Однако существует более сложная операция, требующая псевдонимы столбцов. Какой класс может быть использован для создания более сложных SQL запросов?
(1) SQLiteQueryBuilder
(2) SQLiteComplexQuery
(3) ComplexQueryHelper
(4) EnhancedSQLiteQuery
(5) ExtendedQueryBuilder
File file = new File(myContext.getExternalFilesDir(null), "appData.txt"); try { FileOutputStream os = new FileOutputStream(file, true); OutputStreamWriter out = new OutputStreamWriter(os); out.write{data); out.close(); } catch (e) { } При компиляции ошибок не обнаружено, все переменные имеют корректные значения, устройства внешней памяти установлены и доступны. Какие еще условия должны быть соблюдены, чтобы с помощью данного кода можно было успешно сохранить файл с данными?
(1) приложение должно запросить разрешение, вызвав метод canWriteExternalStorage() перед исполняемым кодом
(2) исключение должно генерироваться каждый раз до тех пор, пока не удастся сохранить файл
(3) значения данных должны быть приведены к типу файлового объекта
(4) в файле манифеста должно быть записано android.permission.WRITE_EXTERNAL_STORAGE
(5) в метод getExternalFilesDir() вместо NULL должно быть передано значение ИСТИНА
Приложение сохраняет медиа файлы в одной из директорий SD карты. Необходимо, что данные файлы не могли быть обнаружены с помощью Media Scanner. Какие действия должны быть предприняты?
(1) в директории должен быть пустой файл с именем .noscan
(2) убедиться, что директория скрыта
(3) при запуске приложения вызвать SystemMediaScanner.ignoreDirectory(File)
(4) вначале всех имен файлов поставить точки, и тем самым показать, что они скрыты
(5) в директории должен быть пустой файл с именем .nomedia
public boolean onCreateOptionsMenu(Menu menu) { MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.mainnenu, menu); return false; } Меню, реализованное с помощью данного фрагмента кода, не отображается. Программа не выдает никаких сообщений об ошибках. Что может быть возможной причиной?
(1) метод onCreateOptionsMenu() должен возвращать значение ИСТИНА
(2) Activity должно относиться к расширению MenuActivity
(3) R.menu.mainmenu некорректный формат для идентификатора ресурса
(4) MenuInflater одиночный объект не может быть выполнен
(5) вы должны вызвать метод commit() в Меню переданного объекта
Какой метод не участвует в жизненном цикле Activity
(1) onCreate()
(2) onDestroy()
(3) onSaveInstanceState()
(4) onRestart()
(5) onPause()
Разрабатывается приложение, в котором должна быть возможность добавлять события в пользовательский календарь. В файле AndroidManifest.xml не нужно настраивать никакие дополнительные разрешения. Как достигнуть данной цели?
(1) использовать CALENDAR.INSERT, отправляя детали события как POST параметры
(2) запросить разрешение WRITE_CALENDAR о времени выполнения приложения, используя метод PermissionManager.grantRuntimePermission()
(3) использовать INSERT и отправить детали события как дополнительные данные
(4) вставить данные напрямую, через доступ к основной XSL базе данных
(5) отправить детали события как XML файл и активировать действие, позволяющее заполнить календарь
Виртуальное устройство Android – это:
(1) экземпляр Android SDK для конкретного Android API
(2) целевая сборка конфигурации, определенной внутри Eclipse, предназначенная для генерации APK
(3) интернет-объект для демонстрации APK для пользователей бета версий
(4) эмулятор, представляющий определенную конфигурацию устройства
(5) JVM-изображение, используемое для отладки приложения на рабочем столе
Для каких интегрированных сред (IDE) Google предлагает надстройки для разработки под Android?
(1) Netbeans
(2) JBuilder
(3) IntelliJ IDEA
(4) Eclipse
(5) JDeveloper
Вы просматриваете результаты трассировки вашего приложения. Приложение создает потоки, чтобы справиться с интенсивно-вычислительной работой. Вы знаете, что приложение создает несколько потоков в течение определенного времени, однако в результатах трассировки видите только один. Что вызывает данную проблему?
(1) потоки выполняются очень быстро, и трассировка не может засечь каждый
(2) трассировка не может засечь более одного потока в одно и то же время
(3) VM использует ID потока, который и отображается в процессе трассировки
(4) VM экономит ресурсы, объединяя несколько потоков в один
(5) приоритет потоков не определен, из-за чего один из них блокируется при трассировке
Какая команда отправляет файл myFile.txt из директории /work/project1 на устройство Android в директорию /sdcard/myProject?
(1) adb /work/project1/myFile.txt /sdcard/myProject/myFile.txt
(2) adb push /work/project1/myFile.txt /sdcard/myProject/myFile.txt
(3) sftp upload /work/project1/myFile.txt /sdcard/myProject/myFile.txt
(4) telnet dev:null /work/project1/myFile.txt /sdcard/myProject/myFile.txt
(5) adb send /work/project1/myFile.txt /sdcard/myProject/myFile.txt
Необходимо создать образ SD карты с файловой системой FAT32, который может быть протестирован на устройствах с различными конфигурациями. Какая программа позволит создать данный образ?
(1) mksdcard
(2) mksdimg
(3) fat32img
(4) makefat32img
(5) sdcard
Запущен долговременный процесс, и вы не хотите, чтобы он влиял на поток UI. Вы решили создать новый поток, но не хотите писать шаблонный код для управления потоками? Какой класс предлагает необходимую функциональность?
(1) AsyncTask
(2) UIThread
(3) Runnable
(4) BackgroundTask
(5) UIWorker
1: public class ProgressTestActivity extends Activity { 2: 3: private Handler handler; 4: private ProgressBar progress; 5: 6: @Override 7: public void onCreate{Bundle savedInstanceState) { 8: super.onCreate(savedInstanceState); 9: setContentView(R.layout.main); 10: progress = (ProgressBar)findViewById(R.id.progressBar); 11: handler = new Handler(); 12: } 13: 14: public void startProgress(View view) { 15: Runnable runnable = new Runnable() { 16: @Override 17: public void run() { 18: for (int i = 0; i <= 10; i++) { 19: final int value = i; 20: try { 21: Thread.sleep(2000); 22: } catch {InterruptedException e) { } 23: handler.post(new Runnable() { 24: @Override 25: public void XXX() { 26: progress.setProgress(value); 27: } 28: }); 29: } 30: } 31: }; 32: new Thread(runnable).start(); 33: } 34: } Какой метод заменит XXX в 25-й строке, для того чтобы progress bar периодически обновлялась?
(1) post
(2) run
(3) execute
(4) update
(5) handleMessage
LocationManager manager = (LocationManager)getSystemService(Context.LOCATION_SERVICE); Criteria criteria = new Criteria(); criteria.setAccuracy(Criteria.ACCURACY_LOW); String provider = manager.getBestProvider(criteria, false); Location location = locationManager.getLastKnownLocation(provider); Чтобы убедиться, что точность расположения менее, чем 100 метров, нужно:
(1) вызвать метод enhancedAccuracy(true) в объекте Location
(2) использовать ACCURACY_FINE вместо ACCURACY_LOW
(3) вызвать getHighAccuracyLocation() вместо getLastKnownLocation()
(4) передать Context.LOCATION_SERVICE_ACCURATE в метод getSystemService()
(5) передать ИСТИНА в качестве значения конструктора Criteria
Действие в приложении запускается, если указано полное имя класса в Intents, и не запускается во всех остальных случаях. Как неявно убедиться в том, что действие будет запущено?
(1) добавить фильтр действия в файле AndroidManifest.xml
(2) добавить разрешение ACTIVITY_IMPLICITLY_LAUNCHABLE в файл AndroidManifest.xml
(3) убедиться, что действие является расширением класса LaunchableActivity
(4) вызвать setLaunchable(true) в методе действия onCreate()
(5) передать ключевое значение "implicitLaunch:true" в Intent, используя запущенное действие
Intent intent = new Intent(Intent.ACTION_VIEW); Uri u = Uri.parse("http://www.google.com"); intent.setData(u); Какой код нужно добавить, чтобы запустить браузер и отобразить страницу www.google.com?
(1) new Activity(intent);
(2) launchActivity(intent);
(3) startBrowser(intent);
(4) navigateTo(intent);
(5) startActivity(intent);
<LinearLayout android:orientation="vertical"> <Button android:id="@+id/Button1" /> <Button android:id="@+id/Button2" /> </LinearLayout> Пример кода взят из макета XML файла. Необходимо убедиться, что Button 1 будет находиться в фокусе, после того как пользователь сместит курсор ниже Button 2. Какую конструкцию вы бы добавили?
(1) android:nextFocus="previousView" к конфигурации Button2
(2) android:nextFocusDown="@+id/Button1" к конфигурации Button2
(3) android:nextFocusTop="@+id/Button2" к конфигурации Button1
(4) android:nextFocusDown="@+id/Button1" к конфигурации Button1
(5) android:nextFocusTop="@+id/Button1" к конфигурации Button2
Для того чтобы включать в приложение статические файлы и обращаться к ним во время работы программы, необходимо:
(1) расположить в папке res/data и открывать с помощью openResource(R.raw("<filename>"))
(2) закодировать в формате base64 и расположить в папке res/data
(3) сохранить в проекте и открыть с помощью openStream("<path_and_filename>")
(4) использовать инструмент datafile, чтобы закодировать в файл Java
(5) расположить в папке res/raw и открывать с помощью openRawResource(R.raw.<filename>)
Какие четыре типа диалоговых окон есть в Android?
(1) Message, Progress, DatePicker, TimePicker
(2) TextInput, Feedback, DataPicker, Toaster
(3) Alert, Progress, DatePicker, TimePicker
(4) Feedback, Progress, DateTimePicker, Input
(5) Immediate, Deferred, DataReciever, Progress
В проект импортированы файлы, которые размещены в папке /assets. Однако приложению нельзя ссылаться на данные файлы, используя сгенерированный файл R.java. Файлы можно сделать доступными приложению, если:
(1) обновить свойства проекта, установив dataFiles=true
(2) отредактировать R.java и заставить файл ссылаться на себя
(3) написать код, разрешающий доступ к файлам напрямую
(4) запустить перепостроение в среде Eclipse
(5) переместить файлы в папку /bin
На сайте размещено приложение. Как пользователь сможет установить это приложение?
(1) пользователи должны запустить Development Mode на своем устройстве
(2) пользователи должны активировать опцию Unknown Sources в настройках своего устройства
(3) файл .apk должен быть подписан распознаваемым сертификатом
(4) Google должен предоставить сайту подписанные SSL сертификаты, которые должны быть установлены на веб-сервере
Нужно осуществить разрешение для URI контент-провайдера. Вы хотите указать путь, начинающийся с /contacts/. Какую конфигурацию для вашей службы необходимо поместить в файл AndroidManifest.xml?
(1) <add-uri-permission android:pathPrefix="/contact/*" />
(2) <grant-uri-permission android:pathPrefix="/contact/*" />
(3) <add-uri-permission android:path="/contact/*" />
(4) <grant-uri-permission android:path="/contact/*" />
(5) <grant-uri-permission android:pathPrefix="/" path="contacts" />
На Android market опубликовано приложение, в файле манифеста которого прописана 5-я версия maxSdk. От пользователей поступают жалобы, что после обновления Android до версии 2.0.1 (API level 6) они не могут использовать данное приложение. После какого обновления приложение сможет работать на новой версии Android?
(1) выполнить метод upgradeApp() в классе Activity
(2) добавить в файл манифеста элемент <upgrade previous="5" new="6" />
(3) установить 6-ю версию maxSdk или выше и удалить предыдущие элементы из файла манифеста
(4) опубликовать новую версию приложения, настроенную под новую версию ОС
(5) установить 6-ю версию targetSdk или выше, и удалить предыдущие элементы из файла манифеста
public class CustomerDBHelper extends SQLiteOpenHelper { CustomerDBHelper(Context context) { super(context, "CustomerDatabase", null, 1); } @Override public void onCreate(SQLiteOatabase db) { db.execSQL("CREATE TABLE customers (lastName TEXT);"); } } Почему данный класс НЕ может быть скомпилирован?
(1) не выполнен метод onOpen()
(2) вместо SQLiteOpenHelper должно быть SQLiteDBHelper
(3) не выполнен метод onUpgrade()
(4) выполняемое SQL выражение не является допустимым
(5) третий аргумент конструктора суперкласса имеет некорректное значение NULL
Устанавливается приложение на устройство с операционной системой Android 4.0. Для воспроизведения аудио потоков из сети Интернет, приложение использует класс MediaPlayer. В предыдущих версиях Android все работало, однако в Android 4.0 поток не воспроизводится. Код приложения не дорабатывался и не предъявлялись никакие дополнительные требования. Что нужно изменить, чтобы аудио потоки воспроизводились всеми версиями Android, включая 4.0?
(1) добавить разрешение ALLOW_STREAMS в файл AndroidManifest.xml
(2) обратиться к новому методу playRemoteStream() в классе MediaPlayer
(3) добавить разрешение INTERNET в файл AndroidManifest.xml
(4) заменить MediaPlayer на AsyncPlayer
(5) добавить разрешение INTERNET_AUDIO в файл AndroidManifest.xml
1: boolean mExternalStorageAvailable = false; 2: boolean mExtemalStorageWriteable = false; 3: String state = Environment.getExternalStorageState{) ; 4: 5: if (Environment.MEDIA_MOUNTED.equals(state)) { 6: mExternalStorageAvailable = mExternalStorageWriteable = AAA; 7: } else if (Environment.MEDIA_MOUNTED_READ_ONLY.equals(state)) { 8: mExternalStorageAvailable = BBB; 9: mExternalStorageWriteable = CCC; 10: } else { 11: mExternalStorageAvailable = mExternalStorageWriteable = DDD; 12: } Необходимо установить значения флагов mExternalStorageAvailable и mExternalStorageWriteable, которые позволят корректно отобразить состояние внешнего устройства. Какие значения должны быть вместо AAA, BBB, CCC и DDD (строки 6, 8, 9 и 11 соответственно)?
(1) false, false, true, true
(2) false, true, false, true
(3) true, false, true, false
(4) true, true, false, false
(5) true, false, false, true
public class MainActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedlnstanceState) ; setContentView(R.layout.main); getLoaderManager().initLoader(0, null, this); } @Override public Loader<Cursor> onCreateLoader(int id, Bundle args) { // Create and return a new Loader } } Что надо добавить в исходный код, чтобы метод onCreateLoader выполнялся при создании нового объекта класса Loader?
(1) сделать MainActivity производным классом от LoaderManager
(2) передать значение, отличное от NULL, в качестве второго аргумента метода
(3) вызвать createLoader() вместо initLoader()
(4) получить ссылку на загрузчик в методе, отличном от onCreate()
(5) нужно, чтобы MainActivity мог выполнять интерфейс LoaderManager.LoaderCallbacks
Какие разделы могут быть пропущены при создании провайдера, потребляющего контент?
(1) A и C
(2) A и D
(3) B и D
(4) A и B
(5) C и D
Какая последовательность обработчиков обратного вызова класса Activity выполняется сначала?
(1) onCreate, onStart, onResume
(2) onStart, onInit, onResume
(3) onCreate, onStart, onRunning
(4) onCreate, onRestart, onResume
(5) onPreInit, onCreate, onRunning
Какое из средств отладки вы используете, чтобы делать скриншоты приложений, запущенных на устройстве?
(1) Monkey
(2) DDMS
(3) scrcap
(4) Dev Tools
(5) adb
public class greeter { public String buildGreeting(String firstName) { String greetingl = "Hello, "; String greeting2 = ", and welcome to the application!"; return greetingl + firstName + greeting2; } public StringBuffer getGreeting{String firstName) { StringBuffer sb = new StringBuffer(); sb.append(buildGreeting(firstName)); return sb; } } Как вызвать метод getGreeting(), не создавая временных объектов?
(1) использовать лямбда выражение, для того чтобы контекст выполнялся в стеке, а не в очереди
(2) использовать более эффективный класс ParallelStringBuffer вместо StringBuffer
(3) использовать шаблоны в методе buildGreeting() вместо сложения строк
(4) изменить параметры доступа к buildGreeting(), для того чтобы объекты можно было добавлять напрямую в класс StringBuffer
(5) сделать все аргументы метода конечными и создать их копии, чтобы работать в обоих методах одновременно
package company.app.aidl; interface IMathService { // INSERT CODE HERE } На месте комментария должен быть метод, в который можно передать два целых значения, перемножить их и вернуть результат. Это:
(1) out int multiply(in int n1, in int n2);
(2) out:int multiply(in:int:n1, in:int:n2);
(3) multiply(in int n1, in int n2) int;
(4) multiply(out int, in int n1, in int n2);
(5) int multiply(in int n1, in int n2);
Java файлы с исходным кодом, применяемые на платформе Android, относятся к типу
(1) .odex
(2) .dalvik
(3) .cls
(4) .dex
(5) .avm
Для разделения приложений, Android присваивает каждому:
(1) идентификатор, производный от имени библиотеки
(2) GUID
(3) отдельный ключ
(4) уникальный временной шифр
(5) уникальный Linux ID
Приложение становится менее производительным всякий раз, когда загружается фоновая служба. Данное приложение использует эту фоновую службу. Во время работы службы пользовательский интерфейс перестает отвечать. Почему страдает производительность приложения, когда работает данная служба?
(1) в приложении не запущен zipalign
(2) неверна цифровая подпись, используемая APK
(3) служба вызывает web–сервисы, однако система этого делать не позволяет
(4) стандартная обработка в Android производится в одном потоке
(5) в приложении не указаны соответствующие ограничения
В приложении появляется диалоговое окно с сообщением Application Not Responding. В приложении один экран с несколькими текстовыми полями, кнопка "Сохранить" данные в текстовый файл и приемник, запускающийся, когда пользователь нажимает на кнопку "Сохранить". Сто тестов показали, что данные успешно сохраняются в текстовый файл, однако диалоговое окно с сообщением ANR появляется случайным образом. Какая причина появления данного диалогового окна?
(1) в очереди главного потока находятся множественные вызовы
(2) во время осуществления события приложение не отвечает в течение 3 секунд
(3) приемник исполняет операции более 10 секунд
(4) оператор "Сохранить" блокирует вызов I/O
(5) в результате действий UI создано большое количество потоков
Что НЕ может делать приемник?
(1) запускать службы или отправлять транслируемые сообщения
(2) использовать внешние ресурсы или внешние устройства
(3) создавать уведомления и выводить ошибки в строке состояния
(4) использовать JNI (Java Native Interface) или SQLite
(5) показывать диалог или присоединяться к службе
Intent i = new Intent(Intent.ACTION_VIEW); Bundle b = new Bundle(); b.putString("EMAIL", "abc@xyz.com"); Как, присоединив Bundle к Intent, к Intent можно передать следующее действие? Какая строка кода описывает эту возможность?
(1) i.putBundle(b);
(2) i.addExtra(b);
(3) i.addData(b);
(4) i.passBundle(b);
(5) i.putExtras(b);
// onCreate() method from your searchable Activity class @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.search); Intent intent = getIntent(); if (Intent.ACTION_SEARCH.equals(intent.getAction())) { String query = intent.getStringExtra(SearchManager.QUERY); doMySearch(query); } } Как проверить, что действие запущено, когда пользователь выполняет поиск в виджете?
(1) добавить к классу поле public static boolean SEARCH_ENABLED со значением ИСТИНА
(2) вызвать makeSearchable() после вызова setContentView()
(3) убедиться, что класс является производным от класса SearchableActivity
(4) сконфигурировать действие, которое будет обрабатывать ACTION_SEARCH
(5) обозначить класс действий в файле searchable.xml
Вы устанавливаете меню в приложение. Вы создали XML файл mainMenu.xml и разместили его в папке assets/menu. Когда вы попытаетесь создать меню, используя getMenuInflater().inflate(R.menu.mainMenu, viewGroup), меню не создается. Какое действие должно быть предпринято для устранения данной проблемы?
(1) нужно вручную отредактировать R.java, чтобы добавить ссылку на XML file
(2) нужно использовать inflateFromFile() вместо inflate()
(3) нужно передать значение ИСТИНА в качестве второго аргумента метода inflate()
(4) нужно переместить mainMenu.xml в папку res/menu
(5) нужно использовать класс MenuFileInflater вместо MenuInflater
Синтаксис android:id="@+id/foo" – это XML-макет используемый для:
(1) ссылки на различные типы ресурсов, автоматически генерируемых SDK
(2) информирования разработчика пользовательского интерфейса о том, что в проект могут быть импортированы именованные ресурсы
(3) автоматического добавления имен новых ресурсов в R.java
(4) для прямого доступа Android к указанным ресурсам через асинхронный вызов сети
(5) ссылки на ресурс, который является внешним по отношению к проекту в системе управления исходным кодом
Context context = getApplicationContext{); CharSequence text = "Data operation is complete"; int duration = Toast.LENGTH_SHORT; Toast toast = Toast makeText(context, text, duration); // INSERT CODE HERE toast.show(); Какая строка кода должна быть на месте комментария, чтобы разместить всплывающее окно Toast в верхнем левом углу экрана?
(1) toast.setPosition(0, 0);
(2) toast.setGravity(Gravity.TOP | Gravity.LEFT, 0, 0);
(3) toast.setPosition(Gravity.NONE, 0, 0);
(4) toast.setPosition(Toast.TOP, Toast.LEFT);
(5) toast.setGravity(-1, Toast.TOP, Toast.LEFT);
String lc = context.getResources().getConfiguration().locale.getLanguage(); Что нужно заменить в коде, чтобы можно было использовать язык стандарта ISO?
(1) getLanguage() на getISO3Language()
(2) getConfiguration() на getISOConfiguration()
(3) locale на iso3Locale
(4) getResources() на getISO3Resources()
(5) getLanguage() на getISOLanguage()
Для каждого объекта Activity в приложении Android используется стиль:
(1) android:theme атрибут элемента <application>
(2) android:theme атрибут элемента <activity>
(3) android:globalStyle атрибут элемента <application>
(4) android:style атрибут элемента <application>
(5) android:style атрибут элемента <activity>
Необходимо проверить имеет ли вызываемый процесс разрешение для программного доступа к сервису. Что для этого используется?
(1) Process.validatePermission()
(2) Context.checkCallerPermissions()
(3) Security.validateCallingContext()
(4) Context.checkCallingPermission()
(5) Process.checkCaller()
Где хранится сертификат приложения (cert.rsa) при построении в APK?
(1) res
(2) res/cert
(3) web-inf
(4) meta-inf
(5) cert
Файлы сохраняются на устройстве внутренней памяти. Что будет с файлами, когда пользователь удалит приложение?
(1) удалятся
(2) останутся
(3) будут сжаты
(4) будут скопированы на внешнее устройство
(5) будут зашифрованы и сохранены, на случай, если приложение будет переустановлено
Мобильные устройства часто подсоединяются к удаленным объектам через сеть, например, точки доступа Wi-Fi. Для безопасного соединения ваше устройство всякий раз должно:
(1) использовать маршруты I/O низкоуровневой сети Linux
(2) запускать ProGuard на APK, чтобы убедиться, что действия в сети неочевидны
(3) использовать безопасные протоколы, такие как HTTP
(4) включить на устройстве 3G или 4G соединение
(5) использовать провайдеров для доступа к сетям, которые Android шифрует автоматически
public void onResume() { super.onResume() ; if (NfcAdapter.XXXXXXXXXX.equals(getlntent().getAction())) { Parcelable[] rawMsgs = intent.getParcelableArrayExtra( NfcAdapter.EXTRA_NDEF_MESSAGES ); if (rawMsgs != null) { msgs = new NdefMessage[rawMsgs.length]; for (int i = 0; i < rawMsgs.length; i++) { msgs[i] = (NdefMessage) rawMsgs[i]; } } } } Необходимо активировать действие кода как часть NDEF. Полезная нагрузка проявляется при получении NFC метки. Какая константа заменит XXXXXXXXXX?
(1) ACTION_NDEF_DISCOVERED
(2) EXTRA_NDEF_MESSAGES
(3) ACTION_NFC_NDEF
(4) ACTION_TAG_DISCOVERED
(5) ACTION_PAYLOAD_FOUND
public class MainActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedlnstanceState) ; setContentView(R.layout.main); getLoaderManager().initLoader(0, null, this); } @Override public Loader<Cursor> onCreateLoader(int id, Bundle args) { // Create and return a new Loader } } Как убедиться что onCreateLoader() запускается, когда нужен новый Loader?
(1) вызвать createLoader() вместо initLoader()
(2) нужно, чтобы MainActivity мог выполнять интерфейс LoaderManager.LoaderCallbacks
(3) передать значение, отличное от NULL, в качестве второго аргумента метода initLoader()
(4) получить ссылку на загрузчик в методе, отличном от onCreate()
(5) сделать MainActivity производным классом от LoaderManager
Когда происходит запуск действия с использованием метода startActivityForResult(), другие действия считаются
(1) derived-activity
(2) dependant-activity
(3) secondary-activity
(4) launched-activity
(5) sub-activity
Необходимо сохранить личные файлы, созданные в приложении. Нужен только список имен файлов. Какой метод необходимо использовать?
(1) InputStream.listFiles()
(2) File.getFiles()
(3) AssetManager.listPrivateFiles()
(4) Context.fileList()
(5) Context.getFileNames()
Какая команда используется для просмотра результатов отладки?
(1) adblog
(2) outview
(3) traceview
(4) tailer
(5) logcat
Необходимо проверить, необходим ли каждый элемент строкового типа приложению. Запуск приложения производится в режиме эмулятора, на языке, установленном по умолчанию. Как осуществить проверку?
(1) запустить DDMS в приложении и посмотреть на ошибки с сообщением "Missing String Resource"
(2) запустить приложение и посмотреть на выданные исключения с сообщением ResourceUndefined
(3) установить в эмуляторе неподдерживаемый язык и запустить приложение
(4) использовать для проверки приложение Dev Tools, размещенное в эмуляторе, с использованием adb
(5) запустить инструмент resourceValidation в файле APK и убедиться, что файл errors.txt пуст
Вы пытаетесь устранить неполадки приложения с помощью журнала регистрации. На выходе слишком много данных, которые могут быть использованы. Вы должны ограничить количество данных на выходе. Необходимо получить данные отладки от ActivityManager, а также от приложения (используется метка CustomerProcessor). Какие фильтры необходимо использовать для получения необходимых данных?
(1) ActivityManager:I CustomerProcessor:D
(2) ActivityManager(I) CustomerProcessor(D) *(S)
(3) ActivityManager:I CustomerProcessor:D *:S
(4) --ActivityManager=info --CustomerProcessor=debug --All=silent
(5) ActivityManager=I CustomerProcessor=D
Какой класс используется для отправки СМС-сообщений?
(1) android.os.MessageManager
(2) dalvik.system.SmsGenerator
(3) android.net.SmsSender
(4) java.net.SmsComm
(5) android.telephony.SmsManager
Во время отладки объем памяти, используемой приложением, увеличивается, потому что:
(1) во время отладки приложение запускается в режиме эмулятора, а не в режиме побитового считывания
(2) для отладки запускается скрытая копия приложения
(3) отладчик не замечает окончания потоков
(4) сборщик мусора не работает во время отладки
(5) VM не собирает мусор, который замечает отладчик
Вызывается метод, выполняемый в IBinder и изначально созданный другим процессом. Что происходит с методом?
(1) вызов создает новый поток внутри UI потока
(2) исполняется в потоке того же процесса, что и IBinder
(3) исполняется в исходном потоке
(4) исполняется в потоке того же процесса, что и исходный
(5) вызов не выполняется, а исключение SecurityViolationException отбрасывает назад
// This method comes from an Activity class. public void onClick(View v) { new Thread(new Runnable () { public void run() { Bitmap b = loadImageFromNetwork("http://example.com/image.png"); mImageView.setImageBitmap(b); } }).start(); } Почему код не осуществляет ожидаемых действий?
(1) конструктор Thread не допускает Runnable в качестве аргумента
(2) вместо loadImageFromNetwork() должно быть threadLoadFromNetwork()
(3) mImageView не доступно внутри метода run()
(4) инструменты UI доступны за пределами потока UI
(5) аргумент View v в onClick() должен быть конечным
public class MyPhoneReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { Bundle extras = intent.getExtras(); if (extras != null) { String state = extras.getString(TelephonyManager.EXTRA_STATE); if (state.equals(TelephonyManager.EXTRA_STATE_RINGING)) { // INSERT CODE HERE Log.w("DEBUG", phoneNumber); } } } Нужно сохранить входящие телефонные номера. Какая строка кода должна быть на месте комментария?
(1) String phoneNumber = (String)extras.getValue(TelephonyManager.EXTRA_INCOMING_NUMBER);
(2) String phoneNumber = extras.getString(TelephonyManager.INCOMING_PHONENUMBER);
(3) PhoneNumber phoneNumber = extras.getString(TelephonyManager.EXTRA_INCOMING_NUMBER);
(4) String phoneNumber = extras.getString(TelephonyManager.INCOMING_NUMBER);
(5) String phoneNumber = extras.getString(TelephonyManager.EXTRA_INCOMING_NUMBER);
Необходимо отправить Intent так, чтобы оно продолжало существовать после передачи сообщения об успешном завершении. Данные должны быть доступны. Какой тип Intent должен быть использован?
(1) Long-lived
(2) Sticky
(3) Accessible
(4) Persistent
(5) Cohesive
При попытке вставки данных с клавиатуры, создаются объекты ClipData, запрашивающие:
(1) cluster identifier
(2) MIME type
(3) class hierarchy
(4) bytestream
(5) intent
Приложение разработано для устройств, поддерживающих французский язык. Файл с соответствующими настройками хранится по адресу res/values-fr-rFR/strings.xml. На одном из экранов приложения метка текстового поля отображается на английском языке. Почему метка текстового поля не отображается на французском?
(1) файл с настройками французского языка strings.xml имеет неверный формат XML
(2) код, определяющий версию метки, некорректно указывает в качестве источника данных французскую версию файла strings.xml
(3) пользователь установил автоматический перевод текстовых меток на английский язык
(4) в файле с настройками французского языка strings.xml пропущена строка, поэтому значение берется из файла, определенного по умолчанию
(5) файл с настройками французского языка strings.xml должен быть расположен по адресу res/values-fr-FR instead or res/values-fr-rFR
Вы работаете с главным действием приложения. Требуется, чтобы действие, запускаемое после главного, было не во весь экран. Как этого добиться?
(1) для запуска второго действия вызвать метод startActivityAsDialog()
(2) установить для второго действия android:theme="@android:style/Theme.Dialog"
(3) установить флаг ACTION_LAUNCH_DIALOG для запуска второго действия
(4) передать значение ИСТИНА в качестве второго аргумента конструктора Intent
(5) убедиться, что для поля второго действия параметр AS_DIALOG установлено значение ИСТИНА
<?xml version="1.0" encoding="utf-8"?> <transition xmlns:android="http://schemas.android.com/apk/res/android" > <item android:drawable="@drawable/myLogo1" /> <item android:drawable="@drawable/myLogo2" /> </transition> Перемещение за 1 секунду в коде класса View осуществляется с помощью:
(1) ((TransitionDrawable)this.getBackground()).executeTransition(1000);
(2) ((TransitionDrawable)this.getBackground()).initiateTransition(1);
(3) ((TransitionDrawable)this.getTransition()).start(1);
(4) ((TransitionDrawable)this.getBackground()).startTransition(1000);
(5) ((TransitionDrawable)this.getTransition()).run(1000);
Какие макеты допускается использовать при разработке виджетов для рабочего стола?
(1) FrameLayout, LinearLayout, и TableLayout
(2) AbsoluteLayout, LinearLayout, и TableLayout
(3) FrameLayout, LinearLayout, и RelativeLayout
(4) AbsoluteLayout, LinearLayout, и TableLayout
(5) RelativeLayout, FrameLayout, и BorderLayout
Нужно осуществить разрешение для URI контент-провайдера. Вы хотите указать путь, начинающийся с /contacts/. Какую конфигурацию для вашей службы необходимо поместить в файл AndroidManifest.xml?
(1) <add-uri-permission android:pathPrefix="/contact/*" />
(2) <grant-uri-permission android:pathPrefix="/contact/*" />
(3) <grant-uri-permission android:pathPrefix="/" path="contacts" />
(4) <add-uri-permission android:path="/contact/*" />
(5) <grant-uri-permission android:path="/contact/*" />
Что произойдет в том случае, если элемент <application> и элемент потомок <activity> имеют атрибуты иконок и меток?
(1) из-за двусмысленных значений при компиляции будет выдано сообщение об ошибке
(2) из-за двусмысленных значений во время выполнения будет выдана ошибка
(3) ни одно значение не сможет быть использовано, так как Android не может определить, какое будет иметь приоритет
(4) значения <activity> переопределяют значения <application>
(5) значения <activity> всегда игнорируются
<xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.company.app"> <uses-sdk android:minSdkVersion="8" /> <application android:icon="@drawable/ic1_launcher" android:label="@string/app1_name" > <activity android:label=@string/app1_name" android:name=".MainActivity" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> <application android:icon="@drawable/ic2_launcher" android:label="App#2" > <activity android:label="App#2" android:name=".MainActivity" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest> Почему данные на выходе некорректны?
(1) неверное значение minSdkVersion
(2) два главных действия не могут существовать в одной библиотеке
(3) указанное пространство имен некорректно
(4) в файле AndroidManifest.xml нельзя использовать строковые значения, в качестве значений меток
(5) элемент <application> должен встречаться один раз
Если пользователи жалуются на то, что во время сохранения данных на удаленном сервере быстро заканчивается батарея, разработчик должен убедиться в том, что приложение не:
(1) запрашивает низкоскоростное соединение, когда доступно высокоскоростное
(2) создаются несколько контент-провайдеров и каждому необходимо соединение
(3) используются фрагменты, в силу того, что UI зависит от сокетов
(4) постоянно повторяются неудавшиеся операции
(5) пытается соединиться с альтернативным сайтом, находящимся на большом расстоянии от устройства
Вы используете класс ListActivity, чтобы отобразить экран с одним Listview, из которого пользователь выбирает пункт. Вы хотите настроить отображение этого экрана. Предполагая, что отображение определено, какая строка кода позволит вам задать пользовательский макет с именем my_custom_layout?
(1) setLayout(R.layout.my_custom_layout);
(2) setContentView("layout.my_custom_layout");
(3) setContentView(R.layout.my_custom_layout);
(4) customContentView("R.layout.my_custom_layout");
(5) defineLayout(R.layout.my_custom_layout);
Виджет ListView получает сообщения от:
(1) ContentProvider
(2) DataAdapter
(3) ListAdapter
(4) ListViewProvider
(5) ListDataManager
Необходимо отобразить данные контент-провайдера в ListView. Какую колонку нужно вернуть как часть записи контент-провайдера?
(1) uniqueID
(2) _ID
(3) key
(4) _COUNT
(5) _Index
Необходимо получить удаленный доступ к системе для сохранения данных. Удаленная система имеет REST интерфейс. В приложения могут быть добавлены только библиотеки Android.
(1) javax.ws.rs
(2) javax.ws.rest
(3) java.net.rest
(4) org.apache.cxf
(5) org.apache.http
Вы работаете с кодом, использующим базу данных SQLite. SQL запросы не возвращают ожидаемых значений. Необходимо проверить некорректные данные и структуры таблиц, когда приложение будет запущено в режиме эмулятора. Какой инструмент вы используете для устранения неполадок базы данных?
(1) sqlite3debug
(2) sqlite3
(3) sqliteviewer
(4) sltool
(5) sqlitedump
Какая команда используется, для того чтобы увидеть результат отладки?
(1) traceview
(2) tailer
(3) logcat
(4) outview
(5) adblog
Приложение пытается соединиться со службой другого разработчика. Код, отвечающий за освобождение ресурсов, отсутствует. Во время теста приложение отключается из-за недостаточного количества ресурсов. Проблема возникла из-за того, что вы не вызвали:
(1) releaseService()
(2) destroyService()
(3) unbindService()
(4) stopService()
(5) completeService()
Действие A запускает B, которое запускает C. Действие A работает вместо B, когда пользователь нажимает кнопку назад из действия C. Какой флаг может быть использован для проверки того, что A работает вместо B?
(1) FLAG_ACTIVITY_NO_HISTORY
(2) FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS
(3) FLAG_ACTIVITY_SKIP
(4) FLAG_ACTIVITY_IGNORE
(5) FLAG_ACTIVITY_NO_BACK
Необходимо добавить поисковый интерфейс в приложение. Android должен контролировать все события, связанные с поиском. Также интерфейс должен включаться во все действия, которые вызывают его. Какой интерфейс нужно использовать для поиска?
(1) dialog
(2) widget
(3) activity
(4) view
(5) provider
Создается пользовательский интерфейс. Необходимо использовать макет, который позволит указывать отношения между элементами предками и потомками. Какой макет необходимо использовать?
(1) TableLayout
(2) FrameLayout
(3) AbsoluteLayout
(4) LinearLayout
(5) RelativeLayout
public class MyCustomViewView extends View { private Paint mTextPaint; private String mText; private int mAscent; public MyCustomViewView(Context context, AttributeSet attrs) { super(context, attrs); mTextPaint = new Paint(); mTextPaint.setAntiAlias(true); mTextPaint.setTextSize( 16 * getResources().getDisplayMetrics().density ); mTextPaint.setColor(0xFF000000); setPadding(3, 3, 3, 3); mAscent = (int) mTextPaint.ascent(); TypedArray a = context.obtainStyledAttributes( attrs, R.styleable.MyCustomViewView ); CharSequence s = a.getString (R.styleable.text); this.mText = s.toString(); invalidate(); requestLayout(); a.recycle(); } @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); canvas.drawText( mText, getPaddingLeft(), getPaddingTop() - mAscent, mTextPaint ); } } Какого размера будет изображение?
(1) 100x100
(2) 200x200
(3) исходная ширина x исходную высоту
(4) ширина экрана x высоту экрана
(5) 50x50
К стилям и темам, предлагаемым платформой Android, можно получить доступ через:
(1) R.styleThemes
(2) R.android.style_themes
(3) android.R.style
(4) android.style_themes
(5) android/stlThm
MyActivity.java --------------- package com.example.app; import android.app.Activity; import android.os.Bundle; public class ExampleActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(new MyDrawView(this)); } } MyDrawView.java --------------- package com.example.all; import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.view.View; public class MyDrawView extends View { public MyDrawView(Context context) { super(context); } protected void onDrawView(Canvas canvas) { Paint paint = new Paint(); paint.setColor(Color.GREEN); paint.setTextSize(25); paint.setAntiAlias(true); canvas.drawText("Hello World", 5, 30, paint); } } Построение и развертывание приложения производятся правильно. Какие ошибки в коде приведут к тому, что текст НЕ будет отображаться полностью?
(1) в методе setContentView() должна быть ссылка на значение из R.java
(2) в MyDrawView должен быть включен метод onDrawStart()
(3) MyDrawView должен быть расширением SurfaceView
(4) к super.onDraw(canvas) необходимо обращаться из onDrawView()
(5) вместо onDrawView() должно быть onDraw()
<permission-group android:description="@string/groupNetwork" android:icon="@drawable/networkIcon" android:label="@string/groupNetworkLabel" android:name="@string/groupNetwork" /> Для чего предназначен код?
(1) для информирования Android о том, что все приложения и компоненты запускаются с использованием разрешения groupNetwork
(2) для логической группировки связанных разрешений
(3) для пользовательских разрешений groupNetwork
(4) для того чтобы убедиться, что приложение имеет права для доступа к ресурсам сети
(5) для информирования Android о том, что приложение использует разрешения groupNetwork
SharedPreferences settings = getSharedPreferences("MyPreferencesFileName", Context.MODE_PRIVATE); SharedPreferences.Editor pe = settings.edit(); pe.putString("MyText", "Hello!"); pe.commit(); Другие приложения должны иметь доступ "только для чтения" к персональным настройкам Вашего приложения. Какое изменение осуществит данную возможность?
(1) Context.MODE_PRIVATE на Context.OTHER_APPS_READABLE
(2) Context.MODE_PRIVATE на Context.MODE_WORLD_READABLE
(3) Context.MODE_PRIVATE на Context.MODE_WORLD_WRITEONLY
(4) Context.MODE_PRIVATE на Context.ALL_READABLE
(5) Context.MODE_PRIVATE на Context.MODE_WORLD_READONLY
Вы представили обновленную версию приложения, которое опубликовано на Android market. Тем не менее, вы получаете сообщения, что, когда люди пытаются установить обновление, оно устанавливается в качестве нового приложения, а не как обновление. Что вызывает данную проблему?
(1) разрешение ALLOW_UPDATE не прописано в файле AndroidManifest.xml
(2) для подписи файла обновления .apk используются различные сертификаты
(3) до публикации на APK не был запущен zipalign
(4) для подписи файла .apk используются различные версии ключей
(5) имя приложения отличается от исходного
public class MyActivity extends Activity implements OnClickListener { @Override public void onCreate(Bundle savedInstanceState) { setContentView(R.layout.main); } } Какая проблема проиллюстрирована с помощью данного кода?
(1) пропущена @Override аннотация
(2) вызов super.onCreate() отсутствует в методе onCreate()
(3) вместо метода setContentView() должен быть setContentLayout()
(4) ссылочный объект некорректный аргумент для метода onCreate()
(5) класс, наследуемый от Activity, не может выполнять OnClickListener
Какой класс асинхронно соединяет и контролирует источники данных и передает их клиенту?
(1) Fragment
(2) DataBridge
(3) Loader
(4) DataProvider
(5) RemoteCursor
Категории используются для:
(1) описания типов обрабатываемых компонентов
(2) именования структур, к которым принадлежит действие
(3) создания описаний, доступных пользователю
(4) для того, чтобы назначать разрешения группам фильтров
(5) для того, чтобы указывать опции, которые будут доступны в контекстном меню
NinePatchDrawable – это растровое изображение, которое
(1) создано с помощью draw9patch и имеет статичный размер
(2) масштабируемо и ограничено 64 цветами
(3) сжато и сохранено в файле формата .9pt
(4) масштабируемо и служит фоном для View
(5) создано из 9 отдельных файлов и используется для анимации
WebView myWebView = (WebView)findViewById(R.id.webview); myWebView.loadUrl{"http://www.example.com"); Как убедиться в работоспособности кода?
(1) обратиться к методу myWebView.reload() после кода
(2) добавить логическую переменную вторым аргументом метода loadUrl()
(3) вызвать метод myWebView.show()
(4) добавить в файл манифеста разрешение android.permission.INTERNET
(5) добавить разрешение android.permission.ALLOW_WEBVIEW в файл манифеста
На Android market опубликовано приложение, в файле манифеста которого прописана 5-я версия maxSdk. От пользователей поступают жалобы, что после обновления Android до версии 2.0.1 (API level 6) они не могут использовать данное приложение. После какого обновления приложение сможет работать на новой версии Android?
(1) опубликовать новую версию приложения, настроенную под новую версию ОС
(2) добавить в файл манифеста элемент <upgrade previous="5" new="6" />
(3) установить 6-ю версию maxSdk или выше, и удалить предыдущие элементы из файла манифеста
(4) выполнить метод upgradeApp() в классе Activity
(5) установить 6-ю версию targetSdk или выше, и удалить предыдущие элементы из файла манифеста
Fragment должен быть всегда определен в:
(1) Space
(2) LayoutManager
(3) CompositeView
(4) ViewGroup
(5) ViewStub