Android」タグアーカイブ

Androidで取得した値をメールで確認

Androidで自動で値を収集して、それをレンサバにPOSTして、レンサバから自動でメール送信。

レンタルサーバーの設定

エックスサーバーのcronにスクリプトをフルパスで追加。
/home/xxx/xxx/script
のような感じにして、scriptのパーミッションは701に設定。

スクリプトの実体
tmp=`cat /xxx/xxx.txt`
echo “$tmp” | mail -s “title” mail@xxx.com
echo “” > /xxx/xxx.txt

これで、xxx.txtの値を定期送信する。

xxx.txtを作成するためのスクリプトは以下

ここでは単純POSTを受け取ったら作成する。

送信するのはAndroid

AndroidStudio インスト~設定 Android(Java)メモ① 

Javaをインストール(必要な場合)

ダウンロードするのは、JavaSE。
JavaSEとは、Java Platform Standard Edition(バージョン5.0までは  J2SEと呼ばれていた)
SEにサーバ向けライブラリをプラスしたのがEEでエンタープライズという感じ。

JDKを保存。JREはランタイムでJDKに内包されている。

Android Studio設定

・設定>ビルド、実行、デプロイ>Gradle>オフライン作業

・gradle.properties

1536から2048に変更。

# org.gradle.parallel=true
コメントアウトを削除し有効化。

・ショートカット変更

タブの移動をVisualStudioと合わせる。

日本語化

http://mergedoc.osdn.jp/
から
Pleiadesのプラグインをダウンロードして、
jp.sourceforge.mergedoc.pleiades

C:\Users\s.okamura\.AndroidStudio2.3
に配置。

Help > Edit Custom VM Options
で新規作成したファイルに
-Xverify:none
-javaagent:C:\Users\s.okamura\.AndroidStudio2.3\jp.sourceforge.mergedoc.pleiades\pleiades.jar
と記入。

Pleiadesにインストーラが付属し基本はインストールするだけ。

実機デバッグ

Tools > Android > SDK Managerで実機のAndroidと同じバージョンのSDKをインストール。
同じ画面の下の方にある、Launch Standalone SDK Managerをクリックして、
別タブにあるGoogle USB Driverにチェックをしてインストール。

実機の端末情報の表示から、ビルド番号を連打して開発者向けオプションを表示させ、
USBデバッグをON。

USBでPCと実機を接続。今回はXperiaZ2なので、
http://developer.sonymobile.com/downloads/drivers/xperia-z2-tablet-driver/
からドライバを入手しインストールする。

新しいプロジェクトを作成するとき、Phone and Tablet で実機と同じバージョンを選ぶ。

ADB(Android Debug Bridge)を利用する場合

パスは以下で、環境変数にパスを通しておく、
C:\Users\s.okamura\AppData\Local\Android\sdk\platform-tools
sysdm.cplで起動し、ユーザー環境変数のPathに追加。

adb devices
adb kill-server
adb start-server

サンプルコード(インテント)

サンプルコード(ダイアログ表示)

サンプルコード(レイアウト生成+トースト表示)

サンプルコード(レイアウト生成+リスト表示)

レイアウトXML(tools)

開発時にのみ使用される情報
xmlns:tools=”http://schemas.android.com/tools”名前空間

tools:context=”.MainActivity”
レイアウトとアクティビティの関連付けによって、レイアウトエディタにテーマが反映される。

レイアウト種類

・FrameLayout > CoordinatorLayout

・LinearLayout > FlexboxLayout
一直線にウィジェットを並べるレイアウト

・RelativeLayout > ConstraintLayout
相対的な位置指定をするレイアウト

・TableLayout
表形式でレイアウト

・GridLayout

・Absolute layout(非推奨)

レイアウトサイズ

・wrap_content
中身に合わせてサイズを調整。

・fill_parent > match_parent
親のサイズと同じ(最大サイズ)。

単位

DP・SP・PX

ConstraintLayoutのwidth / height

・wrap_content
従来同様

・match_parent > Match Constraints
制約のルールを満たす範囲内で指定できる最大限の領域。
実際しているする値はないので、
layout_width=”0dp”
として指定する。

・Fixed
固定値でサイズを指定。

起動ファイル指定

AndroidManifest.xml
より
android:name=”.Test1Activity”
のように指定する。

パッケージ変更方法

・AndroidManifest.xmlを編集する。

・build.gradleを編集する・物理構造を変更する。
MyApplication > app > src > main > java > com > example > mail > myapplication

・ファイルの先頭宣言部を書き換え。

Context

thisとgetApplicationContextで取得できる。

グローバル情報へアクセスするためのインタフェースであり、呼び出してContextが持つテーマを利用したりする。

Activityライフサイクル

・起動する場合。
onCreate
onStart
onResume
アクティビティの表示。

・別のアクティビティを呼び出す場合。
onPause 
別の画面が表示されている状態。
onStop
もとのアクティビティは停止。

・onPauseの時にもとのアクティビティに戻る場合。
onResume
もとのアクティビティ表示。

・別のアクティビティが表示後、
もとのアクティビティに戻る場合。
onRestart
onStart
onResume
もとのアクティビティ表示。

・画面の破棄
onDestroy

アクティビティは停止中に自動で削除される場合もある。

BroadcastとReceiver

・BroadcastReceiver
BroadcastされたIntentに応答する仕組み。Intentを受け取った時にメソッドを実行する。

BroadcastがStickyIntentの場合、BradcastReceiverを登録する必要がなく、
NullをregisterReceiverへ渡して呼ぶだけで現在のバッテリー状態のintentが帰ってくる。

IntentFilter ifilter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED);
Intent batteryStatus = context.registerReceiver(null, ifilter);

・StickyIntent

StickyBroadcast発信できるIntentをStickyIntentという。
BatteryManagerなど

・Intent

機能と機能を橋渡しする仕組みで、主にActivityを起動するのに利用。

明示的IntentはActivityを指定し、暗黙的IntentはActivityを指定しない。
暗黙の場合、推測できる情報としてIntentFilterを入れておく。

暗黙的Intentの受け取り手となりうるクラスは、Activity・Service・BroadcastReceiverがある。

・Broadcast
通常のBroadcastとStickyBroadcastがある。

通常のBroadcastは発信したときにBroadcastReceiverがないとIntentが破棄される。

StickyBroadcastは最後のBroadcastがメモリに残っている。
(Intentの配信が終了した後に登録されたBroadcastReceiverにも配信されるIntent)

システムでは非同期にBroadcastIntentを発生させている。

サンプルコード(StickyBroadcastでバッテリー情報取得)

Fragment

Activityに近いライフサイクルを持ったビューのこと。
ActivityはFragmentActivityを継承しダイアログはDialogFragmentを継承する。

サンプルコード(フラグメントダイアログ表示)