Текст книги "Сборник тестов: 1500 вопросов и ответов на знание Android"
Автор книги: Тимур Машнин
сообщить о нарушении
Текущая страница: 6 (всего у книги 25 страниц) [доступный отрывок для чтения: 10 страниц]
Тест 11
Вопрос 1
В чем разница между линейной планировкой и относительным макетом?
Линейная планировка – организует элементы в вертикальном или горизонтальном режиме. Относительный макет – организует элементы относительно друг друга.
Линейная планировка – организует элементы только в вертикальном режиме. Относительный макет – организует элементы относительно друг друга.
Линейная планировка – организует элементы в любом абсолютном режиме. Относительный макет – организует элементы в относительно других макетов.
Линейная планировка – организует элементы в вертикальном или горизонтальном режиме. Относительный макет – организует элементы в стек.
Вопрос 2
Как уничтожить активность?
finish ()
finishActivity (int requestcode)
kill ()
Все перечисленное.
Вопрос 3
Каким будет жизненный цикл активности в случае изменения конфигурации или изменения ориентации?
onPause () – > onSaveInstanceState () – > onCreate () – > onStart () – > onRestoreInstanceState () – > onResume ().
onPause () – > onSaveInstanceState () – > onStop () – > onCreate () – > onStart () – > onRestoreInstanceState () – > onResume ().
onPause () – > onSaveInstanceState () – > onStop () – > onDestroy () – > onCreate () – > onStart () – > onRestoreInstanceState () – > onResume ().
Может быть любым из вышеперечисленных в зависимости от ситуации.
Вопрос 4
Сколько видов линейных макетов есть в Android?
Абсолютный линейный макет, обычная линейная планировка.
Горизонтальное и вертикальное линейное расположение.
Фрейм и абсолютный линейный макет.
Линейная планировка и относительная линейная планировка.
Вопрос 5
Почему вы не должны создавать тяжелую функциональность в методе оnPause () вашей активности?
Потому что Android может убить вашу активность в любой момент времени.
Потому что пользователь с нетерпением ждет для отображения следующую активность.
Потому что имеется временное ограничение в 5 секунд.
Потому что имеется ограничение по времени в 10 секунд.
Вопрос 6
Что делать в методе onRestart () активности?
Загрузить XML-файл макета
Если произошли какие-либо изменения интерфейса, пока он находился в невидимом состоянии, обновить его в этой функции.
Если произошли какие-либо изменения интерфейса, пока он находился в рабочем состоянии, обновить его в этой функции.
Используется для перезагрузки всех ресурсов интерфейса в случае паузы активности, которая происходит в случае изменения конфигурации.
Вопрос 7
Можно ли передать курсор адаптеру массива в качестве источника?
Нет, потому что адаптер массива принимает только списки.
Да, потому что курсор также представляет один список.
Вопрос 8
Какие обязательные функции, которые должны быть реализованы в пользовательском адаптере?
onCreate (), onStart (), getView ()
getCount (), getView (), getItem (), getItemId ()
getView ()
getView (), getCount ()
Вопрос 9
Как создать пользовательский адаптер в Android?
Расширить класс Adapter.
Расширить ListAdapter.
Расширить либо один из классов Adapter либо BaseAdapter.
Расширить BaseAdapter.
Вопрос 10
Что представляет собой адаптер Android?
Мост между источником и макетом.
Мост между источником и представлением адаптера.
Мост между ListView и View.
Мост между представлением и активностью.
Вопрос 11
Что представляет собой adapterview? Сколько представлений адаптера доступно в Android?
ListView является adapterview, пример представления адаптера: ListView, TableLayout, spinner.
linear layout это adapterview, пример представления адаптера: linear layout, relative layout, frame layout.
Любое представление, которое принимает ввод от адаптера называется представлением адаптера. например: ListView, ImageView, spinner, GridView, и т. д.
Любое представление, которое принимает ввод от адаптера называется представлением адаптера. например: ListView, gallery, spinner, GridView, и т. д.
Вопрос 12
Когда активность уничтожается, она будет в памяти или удалится из памяти?
Да, все уничтоженные приложения будут удалены из памяти.
Да, все уничтоженные приложения будут удалены из памяти только через некоторое время.
Уничтоженное приложение будет удалено из памяти, если оно не часто посещается пользователем.
Уничтоженное приложение будет удалено из памяти, если оно не часто посещается пользователем. Если пользователь посещает приложение часто, то оно должно быть загружено много раз, потому приложение остается в пустом процессе в памяти.
Вопрос 13
Запустите приложение обмена сообщениями – > активность создания сообщения – > галерея – > камера – > кнопка домой. Теперь, в каком состоянии активность камеры?
onPause ()
onStop ()
onDestroy ()
onResume ()
Вопрос 14
Что такое Bundle? Что Bundle содержит в оnCreate () вашей активности?
Bundle всегда будет нулевой в оnCreate ().
Bundle содержит предыдущий savedInstantceState.
Bundle содержит предыдущий restoredInstanceState.
Bundle содержит информацию, переданную от другой активности, когда она была запущена с помощью startActivity ().
Вопрос 15
Как получить изображение из галереи в Android?
Intent in = new Intent ();
in. setType («image/*»);
in. setAction (Intent. ACTION_GET_CONTENT);
startActivityForResult (in, 0);
Intent in = new Intent ();
in. setType («image/*»);
in. setAction (Intent. ACTION_GET);
startActivityForResult (in, 0);
Intent in = new Intent ();
in. setType («image/*»);
in. setAction (Intent. ACTION_PICK);
startActivityForResult (in, 0);
Intent in = new Intent ();
in. setType (»*/*»);
in. setAction (Intent. ACTION_GET);
startActivityForResult (in, 0);
Вопрос 16
Если я хочу запустить некоторую тяжелую функциональность, которая потребляет много ресурсов батареи, как, например, запуск анимации или запуск камеры, я должен это сделать в оnCreate () или оnStart () или onResume () моей активности?
onStart ()
onCreate ()
onResume ()
Можно сделать это в любой функции.
Вопрос 17
Когда активность находится в остановленном состоянии, она находится еще в памяти или нет?
Когда метод оnStop () вызывается, тогда активность удаляется из памяти.
Когда метод оnStop () вызывается, тогда активность удаляется из памяти в доли секунды.
Когда метод оnStop () вызывается, активность по-прежнему остается в памяти и все ее состояния и переменные остаются нетронутыми.
Когда метод оnStop () вызывается, активность по-прежнему остается в памяти и все ее состояния и переменные остаются нетронутыми. Но она будет удалена из памяти в течении 5 секунд.
Вопрос 18
Как передавать данные между активностями? Скажем, передать идентификатор пользователя и пароль для следующей активности и отобразить его?
Intent in = new Intent ();
in. setAction («ACTION»); //this should match with other activity intent-filter
in. setData (Uri. parse («uid», «tech»));
in. setData (Uri. parse («city», «Bangalore»));
in. setData (Uri. parse («pw», «android»));
Intent in = new Intent ();
in. setAction («ACTION»); //this should match with other activity intent-filter
in. putExtra («uid», «tech»);
in. putExtra («city», «Bangalore»);
in. putExtra («pw», «android»);
Intent in = new Intent ();
in. setAction («ACTION»); //this should match with other activity intent-filter
in. putExtra («tech»);
in. putExtra («Bangalore»);
in. putExtra («android»);
Intent in = new Intent ();
in. setAction («ACTION»); //this should match with other activity intent-filter
in. putExtra («uid»);
in. putExtra («city»);
in. putExtra («pw»);
Вопрос 19
Что представляет собой активность в Android?
Каждый виджет в Android называется активностью.
Каждый экран в Android, с которым пользователь взаимодействует, называется активностью.
Любая активность имеет пользовательский интерфейс. Активность без пользовательского интерфейса невозможна.
Все перечисленное.
Вопрос 20
Какие макеты доступны в Android?
absolute layout
frame layout
relative layout
linear layout
frame layout
relative layout
linear layout
table layout
absolute layout
frame layout
relative layout
linear layout
table layout
Вопрос 21
Что следующий код делает? Предположим, что с содержит курсор строки изображения, выбранного пользователем в галереи.
String path = c. getString (c. getColumnIndex (
MediaStore. MediaColumns. DATA));
File f = new File (path);
String abspath = f. getAbsolutePath ();
Bitmap b = BitmapFactory.decodeFile (abspath);
Это получение пути этого изображения, а затем создание изображения с помощью этого пути.
Это извлечение пути этого изображения, затем преобразование его в абсолютный путь, затем создание растрового изображения из этого абсолютного пути, используя bitmapfactory класс.
Код принимает изображение, затем получает путь этого изображения, затем получает абсолютный путь этого изображения.
Код принимает изображение, затем получает путь этого изображения, затем получает абсолютный путь этого изображения, затем вставляет этот путь в таблицу.
Вопрос 22
Что представляет собой контекст в Android?
Это интерфейс для глобальной информации приложения.
Контексты, как правило, используются для создания новых компонентов или объектов, таких как представление. Контексты также используются, чтобы запустить активность или сервис или широковещательный приемник.
Есть два типа контекстов, контекст активности (this), и ApplicationContext. Вы можете получить контекст приложения методом getApplicationContext ().
Все перечисленное.
Вопрос 23
Что представляет собой фильтр намерений в Android?
Фильтр намерений говорит, какое неявное действие компонент может обработать.
Фильтр намерений говорит, что явное действие компонент может обработать.
Фильтр намерений это партнер для намерения. Android использует фильтр намерения перед запуском компонента для неявного намерения.
Все перечисленное.
Вопрос 24
Что такое pending intent в Android?
Намерение, которое придерживается Android системой для будущих пользователей.
Намерение, которое будет запущено или сработает в будущий момент времени от имени вашего приложения.
Все перечисленное.
Вопрос 25
В чем разница между ViewGroup и Layout?
ViewGroup – это невидимый контейнер и абстрактный класс. Layout более конкретная форма ViewGroup.
Layout – это невидимый контейнер и абстрактный класс. ViewGroup более конкретная форма Layout.
ViewGroup происходят из View, и Layout происходят из ViewGroup.
ViewGroup и Layout оба происходят только из класса View.
Все перечисленное.
Вопрос 26
Как обрабатывать события клавиш в Android?
Keyevents идут от активности к UI представлению. Если активность захочет, она может заблокировать любое ключевое событие.
Keyevents идут от активности к UI представлению. Но активность никогда не блокирует поток событий, но, если это требуется UI представление может заблокировать некоторые события, чтобы остановить их обработку активностью.
Keyevents идут от активности к UI представлению. Но активность никогда не блокирует поток событий, и UI представление не может блокировать события, чтобы остановить их обработку активностью.
Keyevents идут от активности к UI представлению. Но активность никогда не блокирует поток событий, но, если это требуется UI представление может заблокировать некоторые события, чтобы остановить их обработку активностью. Программист может также блокировать любое событие клавиш, чтобы остановить его обработку UI представлением. Поток событий клавиш Android system – > Activity – > Layout – > View – > programmer.
Вопрос 27
Если приложение имеет одну активность – в фоновом состоянии, сервис – в рабочем состоянии, тогда какой приоритет у процесса?
foreground process (1)
service process priority (3)
empty process (5)
visible process (2)
Вопрос 28
Если приложение имеет одну активность – в состоянии на переднем плане, и 2 других активности в – фоновом состоянии, тогда какой приоритет у процесса?
foreground process (1)
service process priority (3)
empty process (5)
visible process (2)
Вопрос 29
Если приложение имеет одну активность, на которой отображается диалоговое окно, тогда какой приоритет у процесса?
foreground process (1)
service process priority (3)
empty process (5)
visible process (2)
Вопрос 30
Если приложение имеет одну активность – в фоновом состоянии, сервис – в рабочем состоянии на переднем плане, тогда какой приоритет у процесса?
foreground process (1)
service process priority (3)
empty process (5)
visible process (2)
Вопрос 31
Какая проблема со следующим кодом?
public class UiprogramActivity extends Activity {
/** Called when the activity is first created. */
Button b;
@Override
public void onCreate (Bundle savedInstanceState) {
super. onCreate (savedInstanceState);
setContentView (R. layout. main);
b = (Button) findViewById (R. id. button1);
b. setOnClickListener (new OnClickListener () {
@Override
public void onClick (View v) {
new Thread () {
public void run () {
b. setText («Hacked from other thread..»);
} //CalledFromWrongThreadException
}.start ();
}
});
}
}
Программа даст сбой, потому что рабочий поток обновляет компонент пользовательского интерфейса напрямую.
Программа даст сбой, потому что мы создаем еще один поток в кнопке. Все активности должны использовать только основной поток.
Программа выполняет и устанавливает текст кнопки 1, как «взломанный из другого потока».
Программа даст ошибку времени компиляции.
Вопрос 32
Как повернуть изображение в ImageView?
Matrix m=new Matrix ();
imageView. setScaleType (ScaleType. MATRIX);
m. postRotate ((float) angle, pivX, pivY);
imageView. setImageMatrix (m);
final RotateAnimation rotateAnim = new RotateAnimation (0.0f, degree,
RotateAnimation. RELATIVE_TO_SELF, 0.5f,
RotateAnimation. RELATIVE_TO_SELF, 0.5f);
rotateAnim. setDuration (0);
rotateAnim. setFillAfter (true);
imgview. startAnimation (rotateAnim);
Все перечисленное.
Вопрос 33
Как получить фотографию с камеры в Android?
//make a folder " pics" to store pics taken by the camera using this
final String directory = Environment. getExternalStoragePublicDirectory (Environment. DIRECTORY_PICTURES) + "/pics/";
File nd = new File (directory);
nd. mkdirs ();
//what is the picture name?
String file = directory+" myfile"+".jpg";
File myFile = new File (file);
try {
myFile. createNewFile ();
} catch (IOException e) {}
Uri myUri = Uri. fromFile (myFile);
//prepare intent for starting camera
Intent in = new Intent (MediaStore. ACTION_IMAGE_CAPTURE);
in. putExtra (MediaStore. EXTRA_OUTPUT, myUri);
startActivityForResult (in, 1);
//////////////////////////////////////////////////////////////////////
//make a folder " pics" to store pics taken by the camera using this
final String directory = Environment. getExternalStoragePublicDirectory (Environment. DIRECTORY_PICTURES) + "/pics/";
File nd = new File (directory);
nd. mkdirs ();
//what is the picture name?
String file = directory+" myfile"+".jpg";
File myFile = new File (file);
try {
myFile. createNewFile ();
} catch (IOException e) {}
Uri myUri = Uri. fromFile (myFile);
//prepare intent for starting camera
Intent in = new Intent (MediaStore. ACTION_CAMERA);
in. putExtra (MediaStore. EXTRA_OUTPUT, myUri);
startActivityForResult (in, 1);
/////////////////////////////////////////////////////////////////////
Все перечисленное.
Вопрос 34
Как получить текущую дату в Android?
Calendar cal = Calendar. getInstance ();
SimpleDateFormat sdate = new SimpleDateFormat («dd-MMM-yyyy»);
String date = sdate. format (cal. getTime ());
Calendar cal = Calendar. getInstance ();
int sec = c. get (Calendar. SECOND);
SimpleDateFormat dateFmt = new SimpleDateFormat («yyyyMMdd_HHmmss»);
String date = dateFmt. format (new Date ());
Все перечисленное.
Вопрос 35
Как обмениваться данными между двумя приложениями?
Использовать файл
Использовать SQLite базу данных
Использовать контент-провайдер
Использовать content resolver
Вопрос 36
В чем разница между ContentValues и Cursor в SQLite?
ContentValues это пара имя-значение, используется для получения значений из таблиц базы данных. Объект ContentValues возвращается из функции query () объекта SQLiteDataBase. Cursor временный буфер, который передается в функции insert () и update () объекта SQLiteDataBase, чтобы обновить строки таблицы.
ContentValues это временный буфер, используется для вставки или обновления значений в таблицах баз данных. ContentValues объект передается в функции insert () и update () объекта SQLiteDataBase. Cursor объект это пара имя-значение, которое хранит результаты из SQLiteDataBase запроса.
ContentValues это временный буфер, используемый для получения значений из таблиц баз данных. ContentValues объект возвращается из функции query () объекта SQLiteDataBase. Cursor это пара имя-значение, которое передается в функции insert () и update () объекта SQLiteDataBase, чтобы обновить строки таблицы.
ContentValues это пара имя-значение, используется для вставки или обновления значений в таблицах баз данных. ContentValues объект передается в функции insert () и update () объекта SQLiteDataBase. Cursor это временный буфер, который хранит результаты из SQLiteDataBase запроса.
Вопрос 37
Чтобы обновить базу данных SQLite Аndroid приложения, могу ли я передать меньшее значение версии, чем предыдущая версия базы данных?
Helper класс считает, что мы всегда будем передавать номера версий в порядке возрастания для обновления.
Да, мы можем передать.
Мы не должны передавать какое-либо значение, система автоматически сгенерирует больший номер версии для следующей версии.
Вопрос 38
Можно ли вызывать getWritableDataBase () в основном потоке пользовательского интерфейса?
Да, это можно.
getWritableDataBase () не должен вызваться в любом потоке.
Это зависит от требований программирования. Если программист хочет, то да, тот метод можно вызывать в основном или фоновом потоке.
Нет, потому что, если этот метод занимает слишком много времени, чтобы создать все таблицы, то это может прервать основной поток.
Вопрос 39
Вызов метода helper. getWritableDatabase () всегда вызывает метод оnCreate () класса Helper?
Это будет вызвать метод Helper класса оnCreate (), только если база данных создается впервые.
Это будет вызвать метод Helper класса оnCreate () каждый раз.
Это будет вызвать метод Helper класса оnCreate () каждый раз, когда пользователь запускает это приложение.
Вопрос 40
Я хочу получить доступ к данным другого приложения в моем приложении. Мне нужно реализовать контент-провайдер в моем приложении или другое приложение должно его реализовать?
Вы должны использовать binder service.
Использовать binder service с контент-провайдером в вашем приложении.
Другое приложение для обмена данными должно реализовать контент-провайдер.
Ваше приложение должно реализовать контент-провайдер.
Вопрос 41
Какой жизненный цикл у контент-провайдера?
Все контент-провайдеры создаются (оnCreate ()) после загрузки телефона первый раз.
Функция контент-провайдера оnCreate () вызывается, когда первый раз клиент вызывает какие-либо функции провайдера с помощью content resolver.
Функция контент-провайдера оnCreate () вызывается каждый раз, когда клиент вызывает какие-либо функции провайдера с помощью content resolver.
Вопрос 42
В чем предназначение SQLiteOpenHelper?
Вспомогательный класс для управления созданием базы данных, для модернизации и управления версиями без потери состояния предыдущих данных.
Вспомогательный класс для управления созданием базы данных, управления версиями, а также вставкой/изменением/удалением/обновлением данных таблицы без потери состояния предыдущих данных.
Вспомогательный класс для вставки/обновления/удаления данных в таблицах с потерей состояния предыдущих данных.
Все перечисленное.
Вопрос 43
Как обновить базу данных SQLite Android приложения, прежде чем загрузить новую версию в Play Store?
Передайте новый номер версии для базы данных в функцию SQLiteOpenHelper (). Затем обновите базу данных в методе оnUpdate класса SQLiteOpenHelper.
Передайте новый номер версии для базы данных в функцию getWriteableDataBase (). Затем обновите базу данных в методе оnUpdate класса SQLiteOpenHelper.
Передайте новый номер версии для базы данных в функцию SQLiteOpenHelper (). Затем обновите базу данных в методе оnCreate () класса SQLiteOpenHelper.
Опубликуйте новое приложение с последней базой данных, не изменяйте старое приложение, это повредит существующее приложение.
Вопрос 44
Может одно приложение получить доступ к базе данных другого приложения непосредственно?
Да, это возможно.
Нет, это невозможно.
Нет, это невозможно, потому что sqliteDB всегда хранится во внутренней памяти приложение. Так что другие приложения не могут получить доступ к базе данных.
Даже если таблицы базы данных хранятся во внутренней памяти, с помощью Content Provider можно получить доступ к базе данных.
Вопрос 45
Как запустить content provider, используя намерение?
Это возможно. Контент-провайдер это также Android компонент, так что мы можем использовать намерение, чтобы запустить его.
Это невозможно. Используя намерение вы не можете вызвать content provider.
Это возможно не прямым способом, потому что мы можем использовать content resolver для связи с контент-провайдером.
Вопрос 46
Как использовать контент-провайдер? Будет ли он поддерживать shared preferences?
Он используется для хранения SQLiteData, сейчас shared preferences не поддерживаются ContentProvider.
Он используется для обмена данными приложения с внешним миром. Сейчас нет поддержки для shared preferences.
Он используется для связи с content resolver.
Он используется для содержания данных. Каждое приложение содержит одного ContentProvider по умолчанию.
Вопрос 47
В чем разница между ContentProvider и СontentResolver?
Они вообще не связаны друг с другом.
Контент-провайдер используется для обмена приватными данными с другими приложениями, тогда как контент-распознаватель общается от клиентской стороны с контент-провайдером.
СontentResolver используется для обмена приватными данными с другими приложениями, тогда как контент-провайдер общается от клиентской стороны с СontentResolver.
Контент-провайдер используется для хранения приватных данных, тогда как контент-распознаватель общается от клиентской стороны с контент-провайдером.
Вопрос 48
В чем разница между cursor и contentvalues?
Cursor это буфер, который содержит результат строки из таблицы базы данных в ответ на запрос.
Contentvalues используются для связи с content provider.
Contentvalues используются для передачи данных SQLite функции.
Вопрос 49
Как получить телефонный номер контакта из контент-провайдера приложения Контакты?
Используйте ContactsContract. Contacts. URI и сделайте запрос с помощью content resolver.
Используйте Contacts. Phone. URI и сделайте запрос с помощью content resolver.
Используйте ContactsContract. Contacts. URI и CommonDataKinds. Phone. CONTENT_URI, затем сделайте запрос с помощью content resolver.
Вопрос 50
Где SQLite база данных Android приложения хранится в памяти?
Во внутренней памяти приложения.
На SD Card.
На сетевом сервере.
По умолчанию она хранится во внутренней памяти, но также возможно, чтобы хранить ее на SD-карте.