#author("2018-09-30T15:05:17+09:00","default:dramsukohome","dramsukohome") [[Dramsuko_wiki]] #shadowheader(1,Program); #shadowheader(2,目次); #contents * Android アプリ開発[#cf59c923] -[[参考サイト(ASCIIデジタル これで作れる! Androidのアプリケーション):http://ascii.jp/elem/000/000/533/533945/]]~ Eclipse + Android SDK の記事ですが、自分はこの記事を Android Studio に読み替えて~ アプリを作成しています。~ ** 開発ソフト [#i6610ec6] *** eclipse [#pfd740ed] Android 開発のサポートが2015年12月で終了することが発表されています。 *** Android Studio [#f26f6641] Eclipse 亡き後、無料の開発ツールはこちらにシフトしていくように感じます。~ Windows,Mac,Linux 全てのOSに対応しているため、Eclipse 同様使い勝手は良さそうです。 * Android Studio [#z49cb08d] ** ショートカットキーまとめ [#g6db5889] +全般 -- エラーの対策候補の表示:Alt + Enter -- クイックフィックス:Alt + Enter -- ハイライトされているエラーへ飛ぶ:F2 or Shift + F2 -- Refactor Rename:Shift + F6 -- メソッドパラメーターの表示:Ctrl + P -- 使ったファイルの履歴からファイルを選択:Ctrl + E -- ナビゲーションバーを開く:Ctrl + Home -- コード生成メニューの表示:Alt + Insert -- 「ビュー」の選択を表示:Alt + F1 -- 置換:Ctrl + R -- 囲む(TryCatchなど):Ctrl + Alt + T -- Introduce Variable:Ctrl + Alt + V -- コメント(行):Ctrl + / -- コメント(ブロック):Ctrl + Shift + / -- 検索:Shift,Shift -- Compile:Ctrl + F9 -- 自動Import:Ctrl + Alt + O -- ソースの畳み込み:Ctrl + Numpad - -- ソースの展開:Ctrl + Numpad + +デバッグ -- ブレークポイント:Ctrl + F8 -- デバッグの実行:F9 -- デバッグの停止:Ctrl + F2 -- プログラムの再開:F9 -- ステップオーバー:F8 -- ステップイン:F7 -- ステップアウト:Shift + F8 -- カーソル位置まで実行:Alt + F9 +定義 -- 定義へジャンプ:Ctrl + B -- 参照されている箇所の表示:Alt + F7 -- ローカル変数の定義:Ctrl + Alt + V -- フィールドの定義:Ctrl + Alt + F -- 定数定義:Ctrl + Alt + C -- メソッドの定義:Ctrl + Alt + M -- strings.xml へ書き出し:Alt + Enter -> Extract string resource +エミュレーター -- Android:Home ボタン --- Home ボタン -- Android:Menuボタン --- F2 -- Android:Startボタン --- Shift + F2,PageDown -- Android:Backボタン --- ESCボタン -- Android:発信・通話ボタン --- F3 -- Android:終話ボタン --- F4 -- Android:検索ボタン --- F5 -- Android:電源ボタン --- F7 -- Android:ボリュームアップボタン --- テンキーのプラス,Ctrl + F5 -- Android:ボリュームダウンボタン --- テンキーのマイナス,Ctrl + F6 -- Android:カメラボタン --- Ctrl + Numpad 5, Ctrl + F3 -- Android:横レイアウトへ切り替え --- Ctrl + Numpad 7, Ctrl + Numpad 9 -- Android:前のレイアウトに切り替え --- Numpad 7, または Ctrl + F11 -- Android:次のレイアウトに切り替え --- Numpad 9, または Ctrl + F12 -- Android:方向ボタン --- Numpad 4,8.6.2 -- Android:方向ボタンの真ん中 --- Numpad 5 ** Android 開発の基本 [#b8354775] *** ソースのディレクトリ構造 [#ge4975a3] -java --Mainソースの場所 --- app -> src -> main -> java -> (domain name) -> MainActivity - レイアウトの場所 -- Main レイアウト --- app -> src -> main -> res -> layout -> activity_main.xml -- 横向きレイアウト landscape --- app -> src -> main -> res -> layout-land -> activity_main.xml - constant(定数) --文字列のConstantファイル(定数設定ファイル)の場所 --- app -> src -> main -> res -> values -> strings.xml --日本語文字列のConstantファイル(定数設定ファイル)の場所(初期は無いので作成) --- app -> src -> main -> res -> values-ja -> strings.xml --数字のConstantファイル(定数設定ファイル)の場所(初期はないので作成) --- app -> src -> main -> res -> values -> integers.xml -AndroidManifest.xml の場所 -- app -> src -> main -> res -> AndroidManifest.xml ** エミュレーター [#r7e11c0b] *** カメラをエミュレートする [#odf22ace] - エミュレーターの設定でカメラを有効にする。 ** その他 [#r5976e6f] *** Log.d 種類 [#vabe632a] - Android Monitor, Logcat で表示 Log.e(TAG, error); Log.w(TAG, warn); Log.i(TAG, info); Log.d(TAG, debug); Log.v(TAG, verbose); *** 実行中のメソッド名を取得 [#j344f6db] StackTraceElement[] stackTraceElements = Thread.currentThread().getStackTrace(); for (StackTraceElement stackTraceElement : stackTraceElements) { System.out.println("-----------------------------"); System.out.println("ClassName : " + stackTraceElement.getClassName()); System.out.println("FileName : " + stackTraceElement.getFileName()); System.out.println("MethodName : " + stackTraceElement.getMethodName()); System.out.println("LineNumber : " + stackTraceElement.getLineNumber()); System.out.println("-----------------------------"); } *** インテントについて [#b422703b] -インテントとは「機能」の呼び出しのこと。~ 例えばウェブブラウザーを呼び出すときは、~ ブラウザーの名前を指定すること無く、~ ウェッブラウザーの「機能」を呼び出す。~ すると、ウェブブラウザー機能を持ったどのソフトを起動するか、~ 選択画面が表示される。~ -またインテントはアクティビティー切り替えにも利用される。 *** 独自Classの getString について [#z240e1e0] Context を引数渡ししてあげればいい。 そうすると argContext.getString(R.string.logdRunnning); などで引ける。 全体的には public void outputLogSummary(Context argContext, Integer argMethodNo){ String logComment = argContext.getString(R.string.logdRunning); this.outputLogSummary(argContext,argMethodNo,logComment); } 呼び出し元は private CommonCls pCommonCls = new CommonCls(); pCommonCls.outputLogSummary(this, METHOD_NO_MAIN_ACTIVITY); *** Activity の追加 [#k8cc3fa3] AndroidManifest.xml に追加するのを忘れないようにしよう。~ また追加は「新規」-「Activity」-「Brank Activity」で~ 追加するとレイアウトも一緒に追加されて便利。~ 以下はAndroidManifest.xml <activity android:name=".Sample0501" android:label="@string/title_activity_sample0501"></activity> * PHP: Hypertext Preprocessor [#k50e5340] http://www.php.net/ - http://jp2.php.net/ (日本のミラーサイト) - 日本PHPユーザー会 (Japan PHP User Group) -- http://www.php.gr.jp/ ** phpで、Nikonのカメラで撮ったjpeg画像から、レンズ情報を抜き出す方法 [#y0ae9f85] -[[phpで、Nikonのカメラで撮ったjpeg画像から、レンズ情報を抜き出す方法]] -php, timezone, タイムゾーン設定 sudo vi /etc/php.ini date.timezone = "Asia/Tokyo" ** mbstringの設定 [#hbe2639b] *** mbstring の install [#i3bc83fb] yum install php-mbstring *** mbstring の設定 [#c06e4a5d] [mbstring] ; language for internal character representation. ; http://php.net/mbstring.language mbstring.language = Japanese ← コメント(;)をはずします。 ; internal/script encoding. ; Some encoding cannot work as internal encoding. ; (e.g. SJIS, BIG5, ISO-2022-*) ; http://php.net/mbstring.internal-encoding mbstring.internal_encoding = UTF-8 ← コメントをはずし、内部エンコーディングをUTF-8へ。 ; http input encoding. ; http://php.net/mbstring.http-input mbstring.http_input = auto ← コメント(;)をはずします。 ; http output encoding. mb_output_handler must be ; registered as output buffer to function ; http://php.net/mbstring.http-output mbstring.http_output = UTF-8 ← コメントをはずし、エンコーディングをUTF-8へ。 ; enable automatic encoding translation according to ; mbstring.internal_encoding setting. Input chars are : ; enable automatic encoding translation according to ; mbstring.internal_encoding setting. Input chars are ; converted to internal encoding by setting this to On. ; Note: Do _not_ use automatic encoding translation for ; portable libs/applications. ; http://php.net/mbstring.encoding-translation mbstring.encoding_translation = On ← コメントをはずし、Onに。 ; automatic encoding detection order. ; auto means ; http://php.net/mbstring.detect-order mbstring.detect_order = auto ← コメント(;)をはずします。 ** CentOS6 に PHP5.6 をインストール [#we8b32ba] *** EPELとRemiリポジトリを追加 [#e610fc4c] -EPEL リポジトリ yum install epel-release -Remi リポジトリ rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm *** 旧PHPの削除 [#n58cbd56] yum remove php-* *** PHP5.6のインストール [#e8c9ff8e] sudo yum install --enablerepo=remi,remi-php56 php php-devel php-mbstring php-pdo php-gd php-xml php-mcrypt *** php-mysql のインストール [#kbc12fc5] sudo yum install -y http://repo.mysql.com/mysql-community-release-el6-5.noarch.rpm sudo yum install phpMyAdmin *** そのたダメおしインストール [#e5934ac8] sudo yum install -y --enablerepo=epel libmcrypt libtidy sudo yum install -y --enablerepo=remi,remi-php56 php php-devel php-pear php-mbstring php-xml php-mcrypt php-gd php-pecl-xdebug php-opcache php-pecl-apcu php-fpm php-phpunit-PHPUnit php-mysqlnd *** php.iniを編集 [#y05406ca] date.timezone = "Asia/Tokyo" mbstring.language = Japanese mbstring.internal_encoding = UTF-8 mbstring.http_input = UTF-8 mbstring.http_output = pass mbstring.encoding_translation = On mbstring.detect_order = auto mbstring.substitute_charset = none * java [#r746e3cd] ** servlet の 405 エラー [#xd1ac8a7] - doGet メソッドに super.doGet(req,resp); を含めてはいけない。 ** Subversion [#f35293d4] [[参考サイト(Linux-UbuntuでのSubversionのインストールと使い方):http://wisdomtrees.net/?p=271]] *** Install [#e585c65d] -Apache のインストール sudo apt-get install apache2 -Subversion のインストール sudo apt-get install subversion subversion-tools libapache2-svn *** Subversion の設定 [#ua21e8e9] - 必要なファイルを /etc/apache2/mods-enabled/ へリンク cd /etc/apache2/mods-enabled ln -s ../mods-available/dav.load dav.load ln -s ../mods-available/authz_svn.load authz_svn.load ln -s ../mods-available/dav_svn.conf dav_svn.conf ln -s ../mods-available/dav_svn.load dav_svn.load - [dav_do_find_liveprop]エラー対応 -- dav.load が読み込まれていない。以下確認 cd /etc/apache2/mods-enabled ln -s ../mods-available/dav.load dav.load -conf ファイルの編集 -- 以下の文字列を追加。~ sudo vim /etc/apache2/mods-enabled/dav_svn.conf <Location /svn> DAV svn SVNParentPath /home/svn </Location> *** リポジトリの作成 [#x52c7bab] sudo mkdir /home/svn/ cd /home/svn/ sudo svnadmin create test *** 作成したファイルの権限変更 [#o3f945e6] cd /home/svn/ sudo chown -R www-data:www-data test *** ElipseへSubversion client をインストールする。 [#a4eeae00] - Subversion client のインストール -- neon を例に取って進める。 -- [ヘルプ]-[Install new software] -[作業対象]に右のURLを入力[http://community.polarion.com/projects/subversive/download/eclipse/6.0/update-site/] -右を選択しインストール。Subversive SVNコネクター > SVNKit1.8.4実装(オプション) *** Android studio, Subversionの設定(中身なし) [#ib25e5b7] -[バージョン管理]-[Enable version control integration...] -[Subversion]を選択しOK -最初にチェックアウトを行う -- [バージョン管理] - [バージョン管理からのチェックアウト]-[Subversion] * UML図 [#o92cd006] ** シーケンス図(Sequence Diagram) [#pabb66fc] - 自動で書けるツールを色々と探してたが見つからなかった。~ ただし以下のソフトはとても良かったので紹介。 --[[PlantUML:http://plantuml.com/]] --[[Manual:http://plantuml.com/sequence-diagram]]