Questions and Answers
- To add features, components, and permissions to your Android app, which file needs to be edited?
- AndroidManifest.xml
- Components.xml
- AppManifest.xml
- ComponentManifest.xml
- Which XML attribute should be used to make an Image View accessible?
- android:talkBack
- android:labelFor
- android:hint
- android:contentDescription
- You launch your app, and when you navigate to a new screen it crashes, Which action will NOT help you diagnose the issue?
- Set breakpoints and then step through the code line by line
- Use the profiler tools in Android Studio to detect anomalies CPU, and network usage.
- Add a Thread.sleep() call before you start the new activity.
- inspect the logs in Logcat.
- Why might push notifications stop working?
- all of these answers
- The device token is not being sent to push provider correctly.
- Google Play Services is not installed on the deivce/emulator.
- Battery optimization is turned on on the device.
- What is the correct set of component classes needed to implement a RecyclerView of items that displays a list of widgets vertically?
- [ ]
- [ ]
- [ ]
- [x]
- The Android system kills process when it needs to free up memory. The likelihood of the system killing a given process depends on the state of the process and the activity at the time. With combination of process and activity state is most likely to be killed?
- Process:In the background;Activity:Is stopped
- Process:In the background;Activity:Is paused
- Process:In the foreground;Activity:Is started
- Process:In the foreground;Activity:Is paused
- You have created a NextActivity class that relies on a string containing some data that pass inside the intent Which code snippet allows you to launch your activity?
- [ ]
- [ ]
- [x]
- [ ]
- You want to include about and setting modules in your project. Which files accurately reflects their inclusion?
- in build.gradle:include ':app',':about' ':settings'
- in settings.gradle:include ':app',':about' ':settings'
- in settings.gradle:include ':about',':settings'
- in gradle.properties:include ':app',':about' ':settings'
- What is the benifit of using @VisibleForTesting annotation?
- to denote that a class, methos, or field has its visibility relaxed to make code testable
- to denote that a class, method, or field is visible only in the test code
- to denote that a class, method, or field has its visibility increased to make code less testable
- to throw a run-time error if a class, methos, or field with this annotation is accessed improperly
- How would you specify in your build.gradle file that your app required at least API level 21 to run, but that it can be tested on API level 28?
- [ ]
- [ ]
- [ ]
- [x]
- When will an activity's onActivityResult()be called?
- when calling finish()in the parent activity
- when placing an app into the background by sitching to another app
- When onStop() is called in the target activity
- when calling finish() in the target activity
- You need to remove an Event based on it;s id from your API, Which code snippet defines that request in Retrofit?
- @DELETE("events)
- @DELETE("events/{id}")
- @REMOVE("events/{id}")
- @DELETE("events/{id}")
- When would you use a product flavour in your build setup?
- when you need to have the app's strings present in multiple lanuages
- when you have to provide different versions of your app based on the physical device size
- when you want to provide different versions of your app based on the device screen density
- when you want to provide different version of your app with custom configuration and resources
- Given the fragment below, how would you get access to a TextView with an ID of text_home contained in the layout file of a Fragment class?
- root.getById(R.id.text_home)
- findViewByID(R.id.text_home)
- root.findViewById(R.id.text_home)
- root.find(R.id.text_home)
- Why do you use the AndroidJUnitRunner when running UI tests?
- The test runner facilitates loading your test package and the app under test onto a device or emulator, runs the test, and reports the results.
- The test runner creating screenshots of each screen that displayed while tests are executed.
- The test runner facilitates parallelization of test classes by providing for each test class.
- The test runner facilitates interacting with visible elements on a device, regardless of the activity or fragment that has focus.
- What allows you to properly restore a user's state when an activity is restarted?
- the onSaveInstance()method
- all of these answers
- persistent storage
- ViewModel objects
- Given the definition below. how would you get access a TextView with an ID of text_home contained in thr layout file of a Fragment class?
- root.find(R.id.text_home)
- findViewById(R.id.text_home)
- root.getById(R.id.text_home)
- root.findViewById(R.id.text_home)
- IF the main thread is blocked for too long, the system displays the \_ dialog?
- Thread Not Responding
- Application Paused
- Application Not Responding
- Application Blocked
- How would you retrieve the value of a user's email from SharedPreferences while ensuring that the returned value is not null?
- getPreferances(this).getString(Email,"")
- getDefaultSharedPrefarances(this).getString(EMAIL,null)
- getDefaultSharedPreferances(this).getString(EMAIL,"")
- getPreferances(this).getString(EMAIL,null)
- Why is it problematic to define sizes using pixels on Android?
- Although screen pixel density varies, this does not impact the use of pixels to define sizes.
- Large devices always have more pixels, so your UI elements will be e=affected if you define them with pixels.
- The same number of pixels may correspond to different physical sizes, affecting the appearance of your UI elements.
- Different devices have different understanding of what a pixel is , affecting the appearance of your UI elements
- You need to get a list of devices that are attached to your computer with USB debugging enable. Which command would execute using the Android Debug Bridge?
- list devices
- adb devices
- list avd
- dir devices
- Which drawable definition allows you to achieve the shape below?
- [ ]
- [ ]
- [x]
- [ ]
- To persist a small collection of key-value data, what should you use?
- external file storage
- SharedPereferences
- SQLite
- internal file storage
- You need to retrieve a list of photos from an API. Which code snippet defines an HTML GET request in Retrofit?
- @GET("photo/{id}"}
- @LIST("photo")
- @GET("photo")
- @GET("photo")
- Given the test class below, which code snippet would be a correct assertion?
- assertThat(resultAdd).is(2.0)
- assertNotNull(resultAdd)
- assertThat(resultAdd).isWqualTo(2.0)
- assertThat(resultAdd)
- What tag should you use to add a reusable view component to a layout file?
- `
` - `
` - `
` - `
`
- `
- You want to provide a different drawable for devices that are in landscape mode and whose language is set to French. which directory is named correctly?
- fr-land-drawable
- drawable-fr-land
- drawable-french-land
- french-land-drawable
- Why might you need to include the following permission to your app?
- to monitor the location of the devices so that you don't attempt to make network calls when the user is stationary
- to request the ability to make network calls from your app
- to monitor the network state of the device so that you can display an in-app banner to the user
- to monitor the network state of the devices so that you don't attempt to make network calls when the network is unavailable
- Which image best corresponds to the following `LinearLayout`?
- A
- B
- C
- D
- You want to open the default Dialer app on a device. What is wrong with this code?
- `startActivityWithResult()` should be used instead of `startActivity()` when using `Intent.ACTION_DIAL`.
- For `Intent.ACTION_DIAL`, the `Intent` option `Intent.FLAG_ACTIVITY_NEW_TASK` must be added when using this `dialerIntent`.
- The `dialerIntent` will cause an ActivityNotFoundException to be thrown on devices that do not support `Intent.ACTION_DIAL`.
- The permission `android.permission.CALL_PHONE` must be requested first before `Intent.ACTION_DIAL` can be used.
- When should you store files in the `/assets` directory?
- when you need access to the original file names and file hierarchy [(Reference)](https://medium.com/mobile-app-development-publication/assets-or-resource-raw-folder-of-android-5bdc042570e0)
- when you need access to the file with its `resource ID`, like `R.assets.filename`
- when you have XML files that define tween animations
- when you need to access the file in its raw form using `Resources.openRawResource()`
- You want to allow users to take pictures in your app. Which is _not_ an advantage of creating an appropriate `intent`, instead of requesting the camera permission directly?
- Users can select their favorite photo apps to take pictures.
- You do not have to make a permission request in your app to take a picture.
- You have full control over the user experience. The app that handles the camera `intent` will respect your design choices.
- You do not have to design the UI. The app that handles the camera `intent` will provide the UI.
- When would you use the `ActivityCompat.shouldShowRequestPermissionRationale()` function?
- when a user first opens your app and you want to provide an explanation for the use of a given permission
- when a user has previously denied the request for a given permission and selects "Tell me more"
- when a user has previously denied the request for a given permission and you want to provide an explanation for its use
- when a user has previously denied the request for a given permission and selected "Don't ask again," but you need the permission for your app to function
- You would like to enable analytics tracking only in `release` builds. How can you create a new field in the generated `BuildConfig` class to store that value?
- [ ]
- [ ]
- [x]
- [ ]
- To optimize your APK size, what image codec should you use?
- JPG
- PNG
- MPEG
- WebP [(Reference)](https://developer.android.com/topic/performance/reduce-apk-size#:~:text=packJPG%20and%20guetzli.-,Use%20WebP%20file%20format,than%20either%20JPEG%20or%20PNG.)
- You have built code to make a network call and tested that it works in your development environment. However, when you publish it to the Play console, the networking call fails to work. What will _not_ help you troubleshoot this issue?
- checking whether `ProGuard` -keepclassmembers have been added to the network data transfer objects (DTOs) in question
- using the profiler tools in Android Studio to detect anomalies in CPU, memory, and network usage
- checking for exceptions in the server logs or server console
- checking that the network data transfer object has `@SerizlizedName` applied to its member properties
- Which code snippet would achieve the layout displayed below?
- [ ]
- [x]
- [ ]
- [ ]
- Which source set is `_not_` available to you by default when Android Studio creates a new project?
- test
- androidTest
- app
- main
- Which definition will prevent other apps from accessing your `Activity` class via an `intent`?
- [x]
- [ ]
- [ ]
- [ ]
- To preserve on-device memory, how might you determine that the user's device has limited storage capabilities?
- Use the `ActivityManager.isLowRamDevice()` method to find out whether a device defines itself as "low RAM."
- Use the `Activity.islowRam()` method to find out whether a device defines itself as "low RAM."
- Use the `ConnectivityManager.hasLowMemory()` method to find out whether a device defines itself as "low RAM."
- Make an image download request and check the remaining device storage usage.
- What is `_not_` a good way to reuse Android code?
- Use a common Gradle module shared by different Android projects.
- Prefer to build custom views or fragments over activities.
- Prefer to build activities instead of fragments.
- Break down UI layouts into common elements and use `
` to include them in other layout XML files.
- Which layout is best for large, complex hierarchies?
- LinearLayout
- ConstraintLayout
- FrameLayout
- RelativeLayout
- You need to upgrade to the latest version of the Android Gradle plugin. Which file should you modify?
- root_project_dir/app/build.gradle.
- root_project_dir/settings.gradle.
- root_project_dir/build.gradle.
- root_project_dir/app/gradle.properties.
- Why do developers often put app initialization code in the Application class?
- The Application class is instantiated before any other class when the process for the application is created.
- The Application class is instantiated after any permissions requests when the process for the application is created.
- The Application class is created each time a new Activity is launched, making it ideal for initialization code.
- The Application class is created each time a background service is called, making it ideal for initialization code.
- What folder should you use for your app's launcher icons?
- /drawable
- /icon
- /mipmap
- /launcher
- Which drawable definition allows you to achieve the shape below?
- [ ]
- [ ]
- [x]
- [ ]
- Given the ConstraintLayout below, which statement is true?
- View B is not horizontally constrained.
- View C has too many constraints.
- View B is not vertically constrained.
- View C is constrained to the parent.
- Given this code snippey from a build.gradle file, which choice is not a possible build variant?
- productionDebug.
- developmentDebug.
- stagingDebug.
- stagingRelease.
- When should you use the androidTest directory to store your test classes?
- when the tests consist only of unit tests.
- when the number of tests to run is large(500+).
- when the tests need to run on your local machine.
- when the tests need to run on real or virtual devices.
- Given an APK named app-internal-debug.apk produced from the build process, which statement is likely to be true?
- This APK is created on a developer machine from the debug product flavor.
- This APK is created from the internalDebug product flavor.
- This APK created from the debug product flavor and internal build type.
- This APK is created from the debug build type and internal product flavor.
- When attempting to build your project, what might the following error indicate?
- You have included incorect format information in your build.gradle file.
- You have added more than 20 dependencies to your build.gradle.
- You have exceeded the total number of methods that can be referenced within a single DEX file.
- You have a NullPointerException in your code.
- Which statement, in build.gradle file, correctly denotes that the corresponding module is an Android library module?
- apply plugin: 'com.module.library'
- apply plugin: 'com.android.library'
- apply plugin: 'com.module.library'
- include plugin: 'com.module.library'
- Given the following dimens.xml file, how would you define an ImageView with medium spacing at the bottom?
- [ ]
- [ ]
- [ ]
- [x]
- what is not a benefit of externalizing app resources such as image and string from a code?
- It allows Android to choose the appropriate resource based on the current configuration during runtime.
- It allows you to have more performant applications because the code and resources are separated.
- It allows you to provide a different Ul experience based on the user's language settings.
- It allows you to provide a different Ul experience based on the user's device size.
- What is the chief purpose of line five in this code snippet?
- to make sure that the activity finishes when the savedInstanceState is not null
- to make sure that the activity creates a new fragment each time it is restored from a previous state
- to prevent the display of two fragments side by side in cases where the activity is restored from a previous state
- to prevent the creation of overlapping fragments in cases where the activity is restored from a previous state
- Which component is not an entry point through which the system or a user can enter your app?
- activity
- content provider
- fragment
- service
- What should you use to display a large, scrolling list of elements?
- ListView
- Recycler View
- LinearLayout
- Scrollview
- You have created an AboutActivity class that displays details about your app. Which code snippet allows you to launch your activity?
- Intent(this, AboutActivity::class).also { intent ->
- Intent(this, AboutActivity::class.java).also { intent ->
- Intent(this, AboutActivity::class).also { intent ->
- Intent(this, AboutActivity::class).also { intent ->
- What is the use of AndroidManifest.xml file?
- It describes the component of the application
- It declares the minimum level of the android API that the application requires
- It facilitates to provide a uinque name for the application by specifying package name
- All of the above
- Which attribute of the element
is used to specify the minimum API Level required for the application to run? - android:targetSdkVersion
- android:minSdkVersion
- android:maxSdkVersion
- None of the above
- To shrink your code in release builds, what tool does Android Studio use?
- R8
- ProGuard
- Shrinker
- D8
- Which layout hierarchy is likely to be drawn the most quickly?
- A
- B
- C
- D
- What is the current recommended way to handle long-running background tasks?
- WorkManager
- AsyncTask
- IntentService
- Thread
- Which approach is not recommended for providing a useful offline state in your app?
- caching data
- storing data locally
- queuing outbound requests to action when connectivity has been lost
- always notifying users that connectivity has been lost
- If you need your app code to inspect information about the current build, which class should you use?
- `BuildConfig`
- `BuildInfo`
- `ConfigParams`
- `ConfigInfo`