0
0

More than 3 years have passed since last update.

Androidアプリ開発に於ける備忘録

Posted at

記事概要

本記事では、初めてのAndroid開発に於いて、私が「そんな仕様なのね」と、逐一詰まった部分を纏めようと思う。
強いてこのページの対象読者を示すなら、初のAndroid開発で、何か知ってた方が良いことはあるか?と考えている人。
基本的には自分向けの備忘録である。そのため、今回の開発をスムーズに行えるようになった時点での解釈を記載する。

本題

それでは、以下に詰まった箇所と、解決後のそれらに対する解釈について記載していく。

Activity

PC向けアプリ開発でよく言われる「画面」に相当すると解釈。
アプリを起動したら出てくる奴らで、ユーザインタフェースに相当し、以下の特徴がある。

Activityのライフサイクル

Activityが呼び出されてから居なくなるまで、大まかに説明すると以下のようになる。

Activityの作成

onCreateメソッドが呼び出されてActivityが作成される。
アプリを作るにあたっては、このメソッドをオーバーライドして処理を記載した。
今回はPC向けのアプリ開発に於けるメインメソッドの感覚で扱った。

Activityの実行

onStartメソッドが呼び出されて作成されたActivityが実行される。
特に明示的に呼び出す必要はなく、onCreateが完了するとそのまま実施される。

Activityの終了

onDestroyメソッドが呼び出されてActivityが終了する。
タスクキル時をはじめ、メモリを解放するために呼び出される。要するに終了処理。
特に明示的に処理を記載する必要はない。

と、大体こんな感じで扱った。実際はこのほかにonResume・onPause・onStopがあるわけだが、これらは意識せず今回作成したプログラムは作成できたため、割愛する。

何が何でもここ(Activity)に物を載せる

ちょろっと感じたのが、何かにつけて表示するにはここに載せる必要があるということだ。
主にAlertDialogを表示するときに感じたのだが、何もないところに直接それを表示することはできない。
何かしら画面上に表示したかったら、兎に角Activityを作り上げてそこに載せる必要がある。
だから、背景が見えるようにダイアログを表示するには、裏で走ってるserviceとかに、背景を透過したActivityを呼び出させる必要があった。

スレッド

HTTP通信を頑張ってみてた当初に引っかかった制限事項。
メインアクティビティで呼び出された処理は、何もなければメインスレッドで処理される。そしてここでは時間がかかる処理が実施できない。
つまり、ここで相手のレスポンスを待つ行為が発生し時間がかかるHTTP通信処理が実施できなかった。
そのため、別スレッドを実施するserviceを継承したクラスと、裏で処理を走らせてくれるAsyncTaskを継承したクラスを用いることにより実施した。
しかし何となく「わざわざ継承されたクラス作らずとも、新しいスレッド作れば行けるんじゃね?」とか思ったが、今回は試さなかった。

XMLファイルたち

正直、こいつらの存在が一番苦戦した。雑ながら、それぞれのファイルについてちょっと言及しとこうと思う。
今回触ったのは以下のファイルたち。

AndroidManifest.xml

基本的なアプリケーションのルールを記載する箇所。
具体的に言うと、バックグラウンドでの処理や、インターネットの接続を許可したり、ActivityのStyleを設定したりする。

styles.xml

名前の通り、AndroidManifest.xmlで設定するStyleの設定、作成を行う。
例えば、完全に透過したActivityを作成する場合、こちらでそのStyleを作成し、Manifestで設定すると言った具合だ。

あとがき

以上、初のAndroidアプリ開発で詰まった部分と解決後の解釈一覧でした。
裏取りをちゃんとやったわけではないので、間違っている可能性がある点だけご注意ください。
一応、参考にしたページは以下になります。

アクティビティの概要
https://developer.android.com/guide/components/activities/intro-activities

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0