linkedin-skill-assessments-quizzes

Android

Q1. To add features, components, and permissions to your Android app, which file needs to be edited?

Q2. Which XML attribute should be used to make an Image View accessible?

Q3. You launch your app, and when you navigate to a new screen it crashes, Which action will NOT help you diagnose the issue?

Q4. Why might push notifications stop working?

Q5. What is the correct set of component classes needed to implement a RecyclerView of items that displays a list of widgets vertically?

    RecycleView
    RecyclerView.Adapter<T extends BaseAdapter>
    RecyclerView.ViewHolder<T extends BaseViewHolder>
    LinearLayoutManager
    RecycleView
    RecyclerView.Adapter
    RecyclerView.ViewHolder<T extends BaseViewHolder>
    LinearLayoutManager
    RecycleView
    RecyclerView.Adapter
    RecyclerView.ViewHolder
    LinearLayoutManager
    RecycleView
    RecyclerView.Adapter<VH extends ViewHolder>
    RecyclerView.ViewHolder
    LinearLayoutManager

Q6. The Android system kills the 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 a combination of process and activity state is most likely to be killed?

Q7. You have created a NextActivity class that relies on a string containing some data that passes inside the intent Which code snippet allows you to launch your activity?

    Intent(this, NextActivity::class.java).also { intent ->
        startActivity(intent)
    }
    Intent(this, NextActivity::class.java).apply {
        put(EXTRA_NEXT, "some data")
    }.also { intent ->
        activityStart(intent)
    }
    Intent(this, NextActivity::class.java).apply {
        putExtra(EXTRA_NEXT, "some data")
    }.also { intent ->
        startActivity(intent)
    }
    Intent(this, NextActivity::class.java).apply {
        put(EXTRA_NEXT, "some data")
    }.also { intent ->
        activityStart(intent)
    }

Q8. You want to include about and setting modules in your project. Which files accurately reflect their inclusion?

Q9. What is the benefit of using @VisibleForTesting annotation?

Q10. How would you specify in your build.gradle file that your app required at least API level 21 to run, but it can be tested on API level 28?

      defaultConfig {
        ...
        minApiVersion 21
        targetApiVersion 28
      }
      defaultConfig {
        ...
        targetSdkVersion 21
        testSdkVersion 28
      }
      defaultConfig {
        ...
        minSdkVersion 21
        testApiVersion 28
      }
      defaultConfig {
        ...
      minSdkVersion 21
        targetSdkVersion 28
      }

Q11. When will an activity’s onActivityResult()be called?

Reference

Q12. You need to remove an Event based on its ID from your API, which code snippet defines that request in Retrofit?

Q13. When would you use a product flavor in your build setup?

Q14. 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?

    private lateinit var textView: TextView
    override fun onCreateView(...): View? {
        val root = inflator.inflator(R>layout.fragment_home, container, false)
        textView = ??
        return root
    }

Q15. Why do you use the AndroidJUnitRunner when running UI tests?

Notice: AndroidJUnitRunner lets us run JUnit3/4-style tests on Android Devices

Q16. What allows you to properly restore a user’s state when an activity is restarted?

Refrence

Q17. If the main thread is blocked for too long, the system displays the _ dialog.

Q18. How would you retrieve the value of a user’s email from SharedPreferences while ensuring that the returned value is not null?

Explanation: In Method "getDefaultSharedPrefarances(this).getString()" The Second parameter is passed so that it can be returned, in case the key doesn't exist. So we need to pass an empty string to be returned in case the key doesn't exist.

Q19. Why is it problematic to define sizes using pixels on Android?

Reference

Q20. You need to get a list of devices that are attached to your computer with USB debugging enabled. Which command would execute using the Android Debug Bridge?

Q21. Which drawable definition allows you to achieve the shape below?

img

    <shape xmlns:android="http://schemas.android.com/apk/res/android"
        android:shape="oval">
        <stroke
            android:width="4dp"
	    android:color="@android:color/white" />
	<solid android:color="@android:color/black" />
    </shape>
    <oval xmlns:android="http://schemas.android.com/apk/res/android">
        <stroke android:width="4dp" android:color="@android:color/black"/>
        <solid android:color="@android:color/white"/>
    </oval>
    <shape xmlns:android="http://schemas.android.com/apk/res/android"
        android:shape="oval">
        <stroke
            android:width="4dp"
            android:color="@android:color/black" />
        <solid android:color="@android:color/white" />
    </shape>
    <shape xmlns:android="http://schemas.android.com/apk/res/android"
        android:shape="oval">
        <stroke
            android:width="4dp"
            android:color="@android:color/white" />
        <solid android:color="@android:color/white" />
    </shape>

Q22. To persist a small collection of key-value data, what should you use?

Q23. You need to retrieve a list of photos from an API. Which code snippet defines an HTML GET request in Retrofit?

Q24. Given the test class below, which code snippet would be a correct assertion?

Q25. What tag should you use to add a reusable view component to a layout file?

Q26. 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?

Q27. Why might you need to include the following permission to your app?

android.permission.ACCESS_NETWORK_STATE

Q28. Which image best corresponds to the following LinearLayout?

    <LinearLayout
        android:layout_width="match_parent"
	android:layout_height="match_parent"
	android:orientation="horizontal"
	android:gravity="center">
	<Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Button" />
	<Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Button" />
        </LinearLayout>

Q29. You want to open the default Dialer app on a device. What is wrong with this code?

val dialerIntent = Intent()
val et = findViewById(R.id.some_edit_text)
dialerIntent.action = Intent.ACTION_DIAL
dialerIntent.data = Uri.parse("tel:" + et.getText()?.toString())
startActivity(dialerIntent)

Q30. When should you store files in the /assets directory?

Reference

Q31. 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?

Q32. When would you use the ActivityCompat.shouldShowRequestPermissionRationale() function?

Q33. 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?

buildTypes {
	debug {
		buildConfig 'boolean', 'ENABLE_ANALYTICS', 'false'
	}
	release {
		buildConfig 'boolean', 'ENABLE_ANALYTICS', 'true'
	}
}
buildTypes {
	debug {
		buildConfig 'String', 'ENABLE_ANALYTICS', 'false'
	}
	release {
		buildConfig 'String', 'ENABLE_ANALYTICS', 'true'
	}
}
buildTypes {
	debug {
		buildConfigField 'boolean', 'ENABLE_ANALYTICS', 'false'
	}
	release {
		buildConfigField 'boolean', 'ENABLE_ANALYTICS', 'true'
	}
}
buildTypes {
	debug {
		buildConfigField 'boolean', 'ENABLE_ANALYTICS', 'true'
	}
	release {
		buildConfigField 'boolean', 'ENABLE_ANALYTICS', 'false'
	}
}

Q34. To optimize your APK size, what image codec should you use?

Reference

Q35. 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?

Q36. Which code snippet would achieve the layout displayed below?

img

    <androidx.constraintlayout.widget.ConstraintLayout
	...>

	<TextView
		android:id="@+id/text_dashboard"
		android:layout_width="match_parent"
		android:layout_height="wrap_content"
		android:layout_marginTop="16dp"
		android:padding="8dp"
		android:textAlignment="center"
		android:text="Dashboard"
		app:layout_constraintEnd_toEndOf="parent"
		app:layout_constraintStart_toStartOf="parent"
		app:layout_constraintTop_toTopOf="parent" />

    </androidx.constraintlayout.widget.ConstraintLayout>
    <androidx.constraintlayout.widget.ConstraintLayout
	...>

	<TextView
		android:id="@+id/text_dashboard"
		android:layout_width="match_parent"
		android:layout_height="wrap_content"
		android:layout_marginStart="8dp"
		android:layout_marginEnd="8dp"
		android:textAlignment="center"
		android:text="Dashboard"
		app:layout_constraintEnd_toEndOf="parent"
		app:layout_constraintStart_toStartOf="parent"
		app:layout_constraintTop_toTopOf="parent" />

    </androidx.constraintlayout.widget.ConstraintLayout>
    <androidx.constraintlayout.widget.ConstraintLayout
	...>

	<TextView
		android:id="@+id/text_dashboard"
		android:layout_width="match_parent"
		android:layout_height="wrap_content"
		android:layout_marginStart="8dp"
		android:layout_marginTop="16dp"
		android:layout_marginEnd="8dp"
		android:padding="8dp"
		android:textAlignment="center"
		android:text="Dashboard"
		app:layout_constraintEnd_toEndOf="parent"
		app:layout_constraintStart_toStartOf="parent"
		app:layout_constraintTop_toTopOf="parent" />

    </androidx.constraintlayout.widget.ConstraintLayout>
    <androidx.constraintlayout.widget.ConstraintLayout
	...>

	<TextView
		android:id="@+id/text_dashboard"
		android:layout_width="match_parent"
		android:layout_height="wrap_content"
		android:layout_marginStart="8dp"
		android:layout_marginTop="16dp"
		android:layout_marginEnd="8dp"
		android:padding="8dp"
		android:text="Dashboard"
		app:layout_constraintEnd_toEndOf="parent"
		app:layout_constraintStart_toStartOf="parent"
	/>

</androidx.constraintlayout.widget.ConstraintLayout>

Q37. Which source set is _not_ available to you by default when Android Studio creates a new project?

Q38. Which definition will prevent other apps from accessing your Activity class via an intent?

	<activity android:name=".ExampleActivity" />
	<activity android:name=".ExampleActivity">
		<intent-filter>
			<action android:name="android.intent.action.SEND" />
		</intent-filter>
	</activity>
	<activity android:name=".ExampleActivity">
		<intent-filter>
			<action android:name="android.intent.action.MAIN" />
			<category android:name="android.intent.category.LAUNCHER" />
		</intent-filter>
	</activity>
	<activity android:name=".ExampleActivity">
		<intent-filter>
			<action android:name="android.intent.action.VIEW" />
		</intent-filter>
	</activity>

Explanation: Intent filters are used to make activities accessible to other apps using intents. So we have to choose the option which has no intent filter to make sure it is not accessible by intent

Q39. To preserve on-device memory, how might you determine that the user’s device has limited storage capabilities?

Q40. What is _not_ a good way to reuse Android code?

Q41. Which layout is best for large, complex hierarchies?

Q42. You need to upgrade to the latest version of the Android Gradle plugin. Which file should you modify?

reference

Q43. Why do developers often put app initialization code in the Application class?

reference

Q44. What folder should you use for your app’s launcher icons?

Q45. Which drawable definition allows you to achieve the shape below?

img

	<shape xmlns:android-"http://schemas.android.com/apk/res/android"
	    android:shape-"oval">
	    <gradient
               android:startColor-"@android:color/white"
               android:endColor-"@android:color/black"
               android:angle-"45"/>
	</shape>
	<rectangle xmlns:android-"http://schemas.android.com/apk/res/android">
	   <gradient
	      android:startColor-"@android:color/white"
	      android:endColor-"android:color/black"
	      android:angle-"135"/>
	</rectangle>
	<shape xmlns:android-"http://schemas.android.com/apk/res/android"
	   android:shape-"rectangle">
	   <gradient
	      android:startColor-"@android:color/white"
	      android:endColor-"@android:color/black"
	      android:angle-"135"/>
	</shape>
	<shape xmlns:android-"http://schemas.android.com/apk/res/android"
	   android:shape-"rectangle">
	   <gradient
	      android:startColor-"@android:color/white"
	      android:endColor-"@android:color/black"
	      android:angle-"98"/>
	</shape>

Q46. Given the ConstraintLayout below, which statement is true?

img

Q47. Given this code snippet from a build.gradle file, which choice is not a possible build variant?

android {
    ...
    defaultConfig{...}

    buildTypes{
    debug{...}
    releasae{...}
}

    flavorDimensions "environment"
    productFlavors {
        producation {...}
        staging {...}
    }
}

Reference

Q48. When should you use the androidTest directory to store your test classes?

Reference

Q49. Given an APK named app-internal-debug.apk produced from the build process, which statement is likely to be true?

Q50. When attempting to build your project, what might the following error indicate?

Conversion to Dalvik format filed: Unable to execute dex: method ID not in [0, 0xffff]: 65536

Q51. Which statement, in build.gradle file, correctly denotes that the corresponding module is an Android library module?

Q52. Given the following dimens.xml file, how would you define an ImageView with medium spacing at the bottom?

<?xml version=1.0 encoding="utf-8"?>
<resources>
    <dimen name="spacing_medium">8dp</dimen>
    <dimen name="spacing_large">12dp</dimen>
</resources>
<ImageView
   android:id=@+id/image_map_pin"
   android:layout_width="wrap_content"
   android:layout_heignt="wrap_content"
   android:src=@drawable/map_pin />
<ImageView
   android:id=@+id/image_map_pin"
   android:layout_width="wrap_content"
   android:layout_heignt="wrap_content"
   androi:layout_botttom="@dimen/spacing_medium"
   android:src=@drawable/map_pin />
<ImageView
   android:id=@+id/image_map_pin"
   android:layout_width="wrap_content"
   android:layout_heignt="wrap_content"
   android:layout_marginBottom="@resources/spacing_medium"
   android:src=@drawable/map_pin />
<ImageView
   android:id=@+id/image_map_pin"
   android:layout_width="wrap_content"
   android:layout_heignt="wrap_content"
   android:layout_marginBottom="@dimen/spacing_medium"
   android:src=@drawable/map_pin />

Q53. What is not a benefit of externalizing app resources such as images and strings from a code?

Q54. What is the chief purpose of line five in this code snippet?

override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_post_create)

	if (savedInstanceState != null) return

	val fragment = CreatePostFragment()
		supportFragmentManager
		.beginTransaction()
		.add(R.id. fragment_container, fragment)
		.commit()

}

Q55. Which component is not an entry point through which the system or a user can enter your app?

Q56. What should you use to display a large, scrolling list of elements?

Q57. You have created an AboutActivity class that displays details about your app. Which code snippet allows you to launch your activity?

Explanation: Intent(Context packageContext, Class<?> cls) Notice: Class not KClass

Q58. What is the use of AndroidManifest.xml file?

Q59. Which attribute of the element is used to specify the minimum API Level required for the application to run?

Q60. To shrink your code in release builds, what tool does Android Studio use?

Explanation: When you build your project using Android Gradle plugin 3.4.0 or higher, the plugin no longer uses ProGuard to perform compile-time code optimization. Instead, the plugin works with the R8 compiler to handle

Reference

Q61. Which layout hierarchy is likely to be drawn the most quickly?

Reference

Q63. You need to provide your users with certain features of your app on-demand or as instant experiences through Google Play. Which type of module should you create?

  1. Reference
  2. Reference

Reference

Q65. If you need your app code to inspect information about the current build, which class should you use?

Q66. In the ConstraintLayout below, why wouldn’t the button expand to fill the width of the parent?

    <androidx.constraintlayout.widget.ConstrantLayout
        ...>
	    <Button
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:text="Button"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent"/>

    </androidx.constraintlayout.widget.ConstrantLayout>

Q67. What is not a use case for idling resources in your Espresso tests?

Q68. What is not a type of resource for providing your app with strings?

Q69. What is not in the activity lifecycle?

Q70. You want to allow users to take a picture in your app. Which code snippet is the correct approach?

  fun showCamera(view: View) {
      Log.i(TAG, "Show camera button pressed.")
      if (ContextCompat.shouldShowRequestPermissionRationale(thisActivity,
      Manifest.permission.CAMERA) {
        showCameraPreview()
      }
       else {
         requestPermissionLauncher.launch(Manifest.permission.CAMERA)
       }
   }
  fun showCamera(view: View) {
      Log.i(TAG, "Show camera button pressed.")
      if (ContextCompat.checkSelfPermission(thisActivity,
      Manifest.permission.CAMERA)
      == PackageManager.PERMISSION_GRANTED) {
        showCameraPreview()
      }
      else {
         requestPermissionLauncher.launch(Manifest.permission.CAMERA)
      }
  }
  fun showCamera(view: View) {
      Log.i(TAG, "Show camera button pressed.")
      showCameraPreview()
  }
  fun showCamera(view: View) {
      Log.i(TAG, "Show camera button pressed.")
      if (ContextCompat.checkSelfPermission(thisActivity,
      Manifest.permission.CAMERA)
      != PackageManager.PERMISSION_GRANTED) {
         showCameraPreview()
       }
       else {
          requestPermissionLauncher.launch(Manifest.permission.CAMERA)
       }
  }

Q71. Given the string resource below, which code snippet is valid?

<string name="upload_photo_notification">%1$d of %2$d photos uploaded</string>
val string: String = getString(
   R.string.upload_photo_notification,
   "2",
   "5"
)
val string: String = getString(
   R.id.upload_photo_notification,
   2,
   5
)
val string: String = getString(
   R.string.upload_photo_notification,
   2,
   5
)
val string: String = getString(
   R.id.upload_photo_notification,
   "2",
   "5"
)

Reference

Q72. Different languages have different rules for grammatical agreement with quantity. To support the following two strings in multiple languages in your app, what is the ideal resource definition?

"You have 1 day remaining"
"You have 2 days remaining"
<string name="trial_days_left_one"> You have %1$d day remaining</string>
<string name="trial_days_left_other">You have %1$d days remaining</string>
<plurals name="trial days left">
    <plural quantity="one">You have %1$d day remaining</plural>
    <plural quantity="other">You have %1$d days remaining</plural>
</plurals>
<plurals name="trial_days_left">
    <item quantity="one">You have %1$d day remaining</item>
    <item quantity="other">You have %1$d days remaining</item>
</plurals>
<string name="trial_days_left">
    <plural quantity="one">You have %1$d day remaining</plural>
    <plural quantity="other">You have &1$d days remaining</plural>
</string>

Q73. When would the operating system use the onTrimMemory() method?

Reference

Q74. In your app, you have a RecyclerView of items. You want to have a different configuration for portrait and landscape modes. which code snippet would allow you to best support the layout below?

img

recyclerView.setLayoutManager(GridLayoutManager(this, 3))
val coulumnCount = resources.getInteger(R.integer.column_count)
recyclerView.setLayoutManager(GridLayoutManager(this, columnCount))
recyclerView.setLayoutManager(LinearLayoutManager(this))
val coulumnCount = resources.getInteger(R.integer.column_count)
recyclerView.setLayoutManager(LinearLayoutManager(this, columnCount))

Q75. You need to remove an Event based on its ID from your API, Which code snippet defines that request in Retrofit?

Q76. 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?