top 35 android interview questions
初心者および経験豊富な開発者とテスターのための基本的なAndroidインタビューの質問:
この技術の時代では、Androidアプリケーションの開発者に対する大きな需要があり、それも高給の仕事の1つです。
したがって、多くの技術に精通した人々がこのキャリアに参入しようとしています。多くの多国籍企業や一部の小規模企業で尋ねられる、いくつかのトリッキーな面接の質問があります。そして、この記事には、何百万人もの求職者に役立つAndroid面接の質問と回答のセットが含まれています。
探検しよう!
この記事には、求職者が面接を無事にクリアできるようにするために、ほとんどすべての重要な概念を簡単な言葉でカバーする、最もよくあるAndroid面接の質問と回答のセットが含まれています。
最も人気のあるAndroidインタビューの質問と回答
以下に示すのは、Androidインタビューで最もよくある質問のリストです。
Q#1)Androidとは何ですか?
回答: Androidはオープンソースのオペレーティングシステムであり、主にスマートフォンとタブレットで人気があります。
このオペレーティングシステムはLinuxカーネルベースです。開発者は、Androidオペレーティングシステムを使用して、スマートフォンで基本的な操作と高度な操作を実行できる機能またはプログラムを開発します。
Q#2)Android SDKとは何ですか?
回答: モバイルアプリケーションを開発するには、Android開発者はいくつかのツールを必要とします。この要件は、アプリの開発または作成に使用されるツールのセットである「AndroidSDK」によって満たされます。
Android環境をエミュレートするグラフィカルユーザーインターフェイスがあります。このエミュレーターは、開発者がコードを記述し、同じコードをデバッグ/テストして何か問題がないかどうかを確認する実際のモバイルデバイスのように機能します。
Q#3)覚えているAndroid OSのバージョンは何ですか?
回答: 以下に、Androidのさまざまなバージョンを示します。
バージョン | 名前 |
---|---|
Android 4.0-4.0.4 | アイスクリームサンドイッチ |
Android 8.0 | 放映 |
Android 7.0-7.1.2 | ヌガー |
Android 6-6.0.1 | マシュマロ |
Android 5-5.1.1 | ロリポップ |
Android 4.4-4.4.4 | キットカット |
Android 4.1-4.3 | ゼリービーン |
Q#4)モバイルアプリケーションテストとモバイルテストの違いは何ですか?
回答: モバイルアプリのテストは、主にアプリケーションの機能と機能に焦点を当てた、デバイス上のアプリケーションのテストです。
また、モバイルテストは実際のモバイルデバイスのテストであり、通話、SMS、連絡先、メディアプレーヤー、組み込みのブラウザなどのモバイル機能に焦点を当てています。
Q#5)Android開発でサポートされている言語を挙げてください。
回答: Javaは、Android開発で広く使用されている言語です。また、C / C ++もサポートしており、Android SDKと併用すると、パフォーマンス速度も向上します。
Q#6)Androidオペレーティングシステムの利点は何ですか?
回答: オープンソースでプラットフォームに依存しません。 Bluetooth、Wi-Fiなどのさまざまなテクノロジーをサポートしています
Q#7)Androidアーキテクチャについて簡単に説明してください。
回答: Androidアーキテクチャは、ソフトウェアスタックコンポーネントの形式です。
次の図は、Androidアーキテクチャのさまざまなレイヤーを示しています。
- Linuxカーネル :Linuxカーネルはソフトウェアスタックの最下部に配置され、Androidアーキテクチャの基盤です。 Linuxカーネルを使用して、Androidはソフトウェアの他のレイヤー間の接続を提供します。キーパッド、ディスプレイ、デバイス製造用オーディオなどのドライバーの開発に役立ちます。
- ハードウェアアブストラクションレイヤー(HAL) :HALは、デバイスドライバーとAPIフレームワーク間のインターフェイスを提供します。これは、ハードウェアコンポーネントに固有のライブラリモジュールで構成されています。
- Androidランタイム :Linuxカーネルはマルチタスク実行環境を提供するため、複数のプロセスがAndroidランタイム(ART)の独自のインスタンスで実行される各プロセスを実行できます。 Androidには、Dalvik VM固有のライブラリ、Java相互運用性ライブラリ、Androidライブラリ、C / C ++ライブラリなどのコアランタイムライブラリがあります。
(画像 ソース )
- アプリケーションフレームワーク(Java APIフレームワーク) :Androidの機能全体はAPIを介して利用できます。これは、Androidアプリケーションが実行される環境を形成する、Activity Manager、Resource Manager、NotificationManagerなどの複数のサービスで構成されています。
- アプリケーション :Androidアプリケーションは最上位レイヤーであり、SMS、ブラウザー、連絡先など、すべてのタイプの組み込みアプリケーションがこの最上位レイヤーに含まれています。また、ゲームなど、ユーザーがインストールするサードパーティのアプリケーションも含まれます。
Q#8)Androidフレームワークを定義して説明します。
回答: Androidフレームワークは、Androidデベロッパーがモバイルアプリのコードを作成するために使用する一連のAPIです。プログラミングコードを記述するためのメソッドとクラスが含まれています。
Androidフレームワークには、画像ペイン、テキストフィールド、ボタンなどを作成するためのさまざまなツールセットが含まれています。また、ユーザーが操作する「アクティビティ」と、バックグラウンドで実行されるプログラムである「サービス」も含まれています。これは、インテント、ブロードキャストレシーバー、コンテンツプロバイダーなどのさまざまなコンポーネントのパッケージです。
Q#9)新しいAndroidプロジェクトに必要なコンポーネントはどれですか?
回答: 新しいAndroidプロジェクトが作成されるたびに、以下のコンポーネントが必要です。
- マニフェスト: それは含まれています XML ファイル。
- ビルド/: ビルド出力が含まれています。
- src /: コードとリソースファイルが含まれています。
- 牛肉/: ビットマップ画像、UI文字列、XMLレイアウト、つまりすべての非コードリソースが含まれています。
- 資産/: これには、コンパイルする必要のあるファイルが含まれています。 .apk ファイル。
以下の画像は、Androidプロジェクトが作成された後のプロジェクトビューを示しています。
(画像 ソース )
Q#10)Androidの重要なコアコンポーネントを提供します。
回答: Androidオペレーティングシステムのコアコンポーネントは次のとおりです。
- アクティビティ
- 意図
- サービス
- コンテンツプロバイダー
- 断片
Q#11)簡単に説明してください–アクティビティとはどういう意味ですか?
回答: アクティビティは、ユーザーが表示および操作できるモバイルアプリの一部です。
例えば 、新しいSMSの作成、アドレスブックからの連絡先の追加、SMS本文へのコンテンツの書き込み、選択した連絡先へのSMSの送信など、複数のアクティビティがあるSMSアプリを開いた場合。
アクティビティは、以下を追跡します。
- ユーザーがアプリで現在探しているものを追跡します。
- ユーザーが進行中のプロセスと前のプロセスを切り替えることができるように、以前に使用されたプロセスを追跡します。
- ユーザーが以前の状態に戻ることができるように、プロセスを強制終了するのに役立ちます
以下に示すように、アクティビティはアクティビティクラスのサブクラスとして実装されます。
パブリッククラスMyActivityはActivityを拡張します
{{
}
Q#12)サービスとはどういう意味ですか?
回答: サービスは、バックグラウンドで実行され、独立して動作するAndroidコンポーネントです。ユーザーインターフェイスは提供しません。
サービスは舞台裏で実行されていますが、ユーザーはさまざまなアプリで作業を続けることができます。ほとんどの場合、ユーザーはバックグラウンドで実行されているサービスに気づいていません。これらのサービスにより、システムはユーザーの進行中の作業を中断することなくプロセスを強制終了できます。
サービスは、サービスクラスのサブクラスとして実装されます。
データベースを視覚的に表現および分析するためにどのツールを使用できますか?
パブリッククラスMainServiceはServiceを拡張します
{{
}
Q#13)アクティビティライフサイクルについて簡単に説明してください。
回答: ユーザーがアプリを操作し、アプリからあちこち移動したり、アプリに戻ったりすると、このすべてのプロセス中に、「アクティビティ」インスタンスもライフサイクルのさまざまな段階で移動します。
onCreate()、onStart()、onRestart()、onResume()、onPause()、onStop()、onDestroy()のような7つの異なる状態があります。これらは「コールバック」と呼ばれます。 Androidシステムはこれらのコールバックを呼び出して、状態が変更されたことを認識します。
以下の図は、アクティビティのライフサイクルを示しています。
(画像 ソース )
ユーザーがアプリで作業しているときは、開く、閉じる、保存、削除、送信など、アプリに関連する多くのアクティビティがあります。
ユーザーアクションに基づいて、これらのアクティビティはUIから部分的に切断されますが、これらのアクティビティは常にメモリに存在するため、ユーザーが同じアクティビティをコールバックすると、ユーザーは中断したときと同じ状態になります。
Q#14)インテントとは何ですか?
回答: ユーザーがあるアクティビティから別のアクティビティに移動する必要がある場合、AndroidにはIntentクラスがあります。インテントはデバイスからユーザーへの通知を表示し、ユーザーは必要に応じて通知に応答できます。
以下に2つのタイプを示します。
- 暗黙の意図
- 明示的な意図
Q#15)暗黙的および明示的な意図を説明してください。
回答: Implicit Intentはシステムコンポーネントを呼び出し、ExplicitIntentsはActivityクラスを呼び出します。
Q#16)アプリ開発で権限を設定することの重要性は何ですか?
回答: アプリ開発の権限が設定されると、データとコードは許可されたユーザーのみに制限されます。
コードが制限なしに保持されている場合、または誰もがアクセスできる場合は、コードが危険にさらされて欠陥が漏洩する可能性があります。
Q#17)Androidの.apk拡張子とは何ですか?
回答: これは、Androidオペレーティングシステムで使用されるデフォルトのファイル形式です。アプリケーションパッケージキット(APK)は、モバイルアプリのインストールに使用されます。 .apkには、リソースファイル、証明書、マニフェストファイル、およびその他のコードが含まれています。
APKファイルは、拡張子が.apkのzip形式のアーカイブファイルです。
Q#18)Androidプラットフォームに使用されるデータベースは何ですか?
回答: SQLiteは、Androidプラットフォームで使用されるデータベースです。これは、オープンソースのサーバーレスデータベースです。
Q#19)AndroidのANRとは何ですか?
回答: ANRは、Application NotRespondingの略です。これは、アプリケーションが一度に実行する機能が多すぎる場合や、ユーザーの操作に突然長時間応答しなくなった場合にAndroidプラットフォームによって表示される通知またはポップアップです。
Q#20)Androidプラットフォームでサポートされているダイアログボックスはどれですか?
回答: Androidは、次の4種類のダイアログボックスをサポートしています。
- AlertDialog :最大3つのボタンがあり、AlertDialogには、要素を選択するためのチェックボックスとラジオボタンが含まれている場合があります。
- ProgressDialog :プログレスバーまたはホイールを表示します。
- TimePickerDialog :このダイアログボックスを使用して、ユーザーは時間を選択します。
- DatePickerDialog :このダイアログボックスを使用して、ユーザーは日付を選択します
Q#21)ADBとは何ですか?
回答: Android Debug Bridge(ADB)は、シェルコマンドを実行するコマンドラインツールです。
ADBは、エミュレータポート間の直接通信に使用されます。これにより、エミュレータインスタンス間の通信を開発者に直接制御できます。
Q#22)ActivityCreatorとは何ですか?
回答: ActivityCreatorは、新しいAndroidプロジェクトを作成するために使用されたバッチファイルとシェルスクリプトです。これは、AndroidSDKの「CreateNewProject」に置き換えられました。
Q#23)オリエンテーションとは何ですか?
回答: オリエンテーションは、最近のスマートフォンの重要な機能です。画面を水平モードまたは垂直モードの間で回転させる機能があります。
Androidは、以下に説明する2種類の画面の向きをサポートしています。
- ポートレート :デバイスが垂直に配置されている場合。
- 風景 :デバイスが水平に配置されている場合。
setOrientation()は、画面の配置を設定できるメソッドです。 HORIZONTALとVERTICALは、setOrientation()メソッドで設定できる2つの値です。表示方向が変更された場合、つまり水平から垂直、またはその逆の場合は常に、アクティビティのonCreate()メソッドが起動されます。
基本的に、Androidモバイルデバイスの向きが変更されると、現在のアクティビティが破棄され、同じアクティビティが新しいディスプレイの向きで再作成されます。 Android開発者は、AndroidManifest.xmlファイルで方向を定義します。
Q#24)AIDLとは何ですか?
回答: Androidプラットフォームには、あるプログラムから別のプログラムへのメソッドの使用を容易にするリモートメソッドがあります。リモートメソッドを作成して実装するための最初のステップは、AIDLで通信インターフェースを定義することです。
AIDLはAndroidInterface DefinitionLanguageの略です。クライアントとサービス間の通信を容易にします。また、プロセス間通信を通じて情報を伝達します。
プロセス間の通信では、データはAndroidプラットフォームで簡単に理解できるチャンクに分割されます。
Q#25)AIDLでサポートされているデータ型は何ですか?
回答: AIDLでサポートされているデータ型は次のとおりです。
- ストリング
- リスト
- 地図
- charSequence
- INT、Long、Char、BooleanなどのJavaデータ型
Q#26)AndroidManifest.xmlファイルについて説明してください。なぜこれが必要なのですか?
回答: すべてのアプリケーションでは、ルートディレクトリにAndroidManifest.xmlファイルが必要です。アプリに関する情報が含まれており、Androidシステムにも同じ情報を提供します。
この情報には、パッケージ名、アクティビティ、サービス、ブロードキャストレシーバー、コンテンツプロバイダーなどのAndroidコンポーネントが含まれます。すべてのAndroidシステムは、アプリコードを実行する前にこの情報を持っている必要があります。
AndroidManifest.xmlファイルは次のタスクを実行します。
- これはJavaパッケージに名前を提供し、この名前はアプリケーションの一意の識別子です。
- アクティビティ、サービス、コンテンツプロバイダーなどを含む、アプリケーションのさまざまなコンポーネントについて説明します。また、これらのコンポーネントを実装するクラスを定義します。
- アプリケーションを保護する責任があり、アプリの保護された部分にアクセスするための許可を宣言します。
- また、アプリケーションで使用されるAndroidAPIも宣言します。
- これには、使用され、アプリケーションにリンクされているライブラリファイルの詳細が含まれています。
Q#27)どのデバイスで作業しましたか?
回答: さまざまなオペレーティングシステムを備えた多くのモバイルデバイスが市場に出回っています。
具体的には、Android、Windows、Symbian、iPhoneなどに取り組んできました。
Q#28)Androidプラットフォームでのデバッグに使用されるツールはどれですか?
回答: 失敗の原因または問題の原因を理解するには、デバッグが重要です。 Androidプラットフォームの場合 Android Monitor.bat ユーティリティはiOSプラットフォームで使用され、iPhone構成ユーティリティはデバッグ目的で使用されます。
デバッグには、次のようなさまざまなツールがあります。 Android DDMS、Android Debug Bridge、iOSシミュレーター、ADTを使用したEclipseからのデバッグ、Chromeを使用したAndroidでのリモートデバッグなど。
Q#29)実際のデバイスでのみテストでき、エミュレーターではテストできないシナリオはどれですか?
回答: エミュレーターは、実際のデバイスで実行されるのと同様の種類のテストを実行するために使用されます。基本的に、エミュレーターは実際のデバイスの代わりに使用されます。実際のデバイスをテストに使用できない場合があり、テスト目的で実際のモバイルデバイスを使用するとコストがかかる場合があります。
ただし、エミュレータを使用してテストできないシナリオはほとんどありません。これらは、実際のデバイスを使用してのみテストできます。これらのシナリオは中断されたシナリオです。つまり、メッセージ、アプリの使用中の通話の中断、ローバッテリー、Bluetooth、メモリカードのマウントとアンマウントなどです。
Q#30)市場で入手可能なモバイル自動化ツールに名前を付けてください。
回答: 市場で入手可能なモバイル自動化テストツールはかなりありますが、これらはプロジェクトで必要な場合、およびアプリケーションが自動化をサポートしている場合にのみ使用されます。
これらのツールは無料のツールと同様に有料であるため、プロジェクトチーム内で分析を行い、適切なモバイル自動化ツールを選択する必要があります。 Silk Mobile、SeeTest、Ranorexは有料のモバイル自動化ツールですが、Appium、KIF、Robotium、Calabashは無料のツールです。
Q#31)頻繁にクラッシュするAndroidアプリケーションのトラブルシューティングをどのように行いますか?
回答: クラッシュの問題のトラブルシューティングを行う際に従う必要のあるいくつかの手順を以下に示します。
- メモリスペースを解放します :モバイルアプリのモバイルデバイスで利用できるスペースは限られています。クラッシュの問題やメモリ関連の問題を回避するには、最初にメモリスペースを確認する必要があります。
- アプリのデータ使用量をクリアする :「設定」のアプリケーションマネージャを使用して、アプリデータをクリアできます。これにより、キャッシュメモリがクリアされ、別のアプリをインストールするための空き容量が確保されるか、現在のアプリが強化されます。
- メモリ管理 :一部のアプリは、あるタイプのモバイルデバイスで完全に動作しますが、同じアプリが別のタイプのデバイスでは動作しない場合があります。そのようなデバイスでは、処理能力、メモリ管理、およびCPU速度が異なります。アプリをあらゆる種類のモバイルデバイスで正しく実行するには、デバイスのメモリを管理する必要があります。
- 互換性の問題 :すべてのモバイルデバイス、ブラウザ、オペレーティングシステムなどでモバイルアプリをテストすることは常に可能ではありません。したがって、互換性の問題を回避するために、できるだけ多くのモバイルデバイスでモバイルアプリをテストする必要があります。
Q#32)Androidプラットフォームのモバイルアプリでメモリリークをどのように見つけますか?
回答: AndroidStudioはAndroidDevice Manager(ADM)を使用しています。このADMは、Androidプラットフォームのメモリリークを検出するために使用されます。
Android StudioでADMを開き、ADMの左側に開くと、ヒープ記号が表示されるデバイスまたはエミュレーターが表示されます。モバイルアプリを実行しているときは、ヒープサイズ、メモリ分析、その他の統計が表示されます。
Q#33)DDMSとは何ですか?
回答: Android Studioには、DDMSと呼ばれるデバッグツール(Dalvik Debug Monitor Server)があります。
これには、次のような幅広いデバッグ機能があります。
- ポートフォワーディングサービス。
- デバイスでの画面キャプチャ。
- スレッドとヒープの情報。
- 着信とSMSのなりすまし。
- Logcat
- 無線状態情報。
- 位置データのなりすまし。
DDMSはAndroidスタジオと統合されています。 DDMSを起動するには、最初にAndroidデバイスモニター(ADM)を開き、次にDDMSメニューボタンをクリックする必要があります。 DDMSが起動すると、左側に接続されているデバイスのリストが、各デバイスで実行されているプロセスとともに表示されます。
DDMSの助けを借りて、実際のデバイスとエミュレーターの両方でデバッグできます。
Q#34)Androidプラットフォームで利用できるさまざまなデータストレージオプションは何ですか?
回答: Androidプラットフォームは、幅広いデータストレージオプションを提供します。これらのオプションは、データが安全で許可を得てのみ使用される、または公的にアクセスできるなどのニーズに基づいて使用する必要があります。
以下は、Androidプラットフォームのデータストレージオプションのリストです。
- SharedPreference :データをXMLファイルに保存します。これは、キーと値のペアにプライベートデータを格納する最も簡単な方法です。
- SQLite :構造化データをプライベートデータベースに保存します。
- 内部記憶装置 :デバイスファイルシステムにデータを保存し、他のアプリはこのデータを読み取ることができません。
- 外部記憶装置 :データはファイルシステムに保存されますが、デバイス内のすべてのアプリからアクセスできます
Q#35)Androidのセンサーについて説明してください。
回答: Android対応デバイスには、向き、動き、その他の状態を測定するセンサーが組み込まれています。
これらのセンサーは高精度のデータを提供し、デバイスの位置と動きを監視するのに役立ちます。一部のセンサーはハードウェアベースであり、ソフトウェアベースのセンサーはほとんどありません。
以下に説明するように、センサーには3つのカテゴリがあります。
例を挙げた機能テストとは
- モーションセンサー :これらのセンサーは回転力と加速力を測定し、重力センサー、回転ベクトルセンサー、加速度計などが含まれます。
- 環境センサー :気温、気圧、湿度などを測定します。
- 位置センサー :デバイスの物理的な位置を測定し、方向センサーと磁力計を含みます。
以下に示すように、Javaクラスには4つのタイプがあります。
- センサーマネージャー
- センサー
- SensorEvent
- SensorEventListener
結論
この記事では、Androidの面接に関する重要な質問と回答のほとんどすべてについて説明しました。これがあなたにとって非常に役立つことを願っています。
これらすべての質問を完全に理解していれば、Androidのインタビューをうまくクラックできると確信しています。
面接の準備ができているといいですね!皆様のご成功をお祈りしております!!
推奨読書
- AndroidおよびiOSデバイス用の2021年の10の最高のプロジェクト管理アプリ
- Androidアプリケーションをテストするための11の最高の自動化ツール(Androidアプリテストツール)
- Androidアプリテストチュートリアル:初心者ガイド
- AndroidおよびiOSモバイルアプリをテストするためのAppiumチュートリアル
- クラウドからAppiumStudioへの実際のiOSおよびAndroidデバイスの接続
- AndroidアプリのAppiumテストを作成する
- Robotium入門-最も人気のあるAndroidアプリケーションUIテストツール
- TestCompleteツールを使用してAndroidアプリケーションを自動化する方法
- DDMSツールを使用してAndroidアプリのメモリリークを修正する方法
- 市場から出されたときにAndroidバージョンをテストする方法は?
- モバイルアプリベータテストサービス(iOSおよびAndroidベータテストツール)
- モバイルUIテストチュートリアル(iOSおよびAndroidアプリのGUIテスト)
- Selendroidチュートリアル:Androidモバイルテスト自動化フレームワーク(パート1)
- AndroidとiOS向けの2021年のトップ15ベストモバイルテストツール
- ネットワークセキュリティキーとは何ですか:ルーター、Windows、またはAndroidでそれを見つける方法
- 面接の質問と回答