Dramsuko_wiki

Program

目次

Android アプリ開発

開発ソフト

eclipse

Android 開発のサポートが2015年12月で終了することが発表されています。

Android Studio

Eclipse 亡き後、無料の開発ツールはこちらにシフトしていくように感じます。
Windows,Mac,Linux 全てのOSに対応しているため、Eclipse 同様使い勝手は良さそうです。

Android Studio

ショートカットキーまとめ

  1. 全般
    • エラーの対策候補の表示: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 +
  2. デバッグ
    • ブレークポイント:Ctrl + F8
    • デバッグの実行:F9
    • デバッグの停止:Ctrl + F2
    • プログラムの再開:F9
    • ステップオーバー:F8
    • ステップイン:F7
    • ステップアウト:Shift + F8
    • カーソル位置まで実行:Alt + F9
  3. 定義
    • 定義へジャンプ:Ctrl + B
    • 参照されている箇所の表示:Alt + F7
    • ローカル変数の定義:Ctrl + Alt + V
    • フィールドの定義:Ctrl + Alt + F
    • 定数定義:Ctrl + Alt + C
    • メソッドの定義:Ctrl + Alt + M
    • strings.xml へ書き出し:Alt + Enter -> Extract string resource
  4. エミュレーター
    • 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 開発の基本

ソースのディレクトリ構造

  • 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

エミュレーター

カメラをエミュレートする

  • エミュレーターの設定でカメラを有効にする。

その他

Log.d 種類

  • Android Monitor, Logcat で表示
    Log.e(TAG, error);
    Log.w(TAG, warn);
    Log.i(TAG, info);
    Log.d(TAG, debug);
    Log.v(TAG, verbose);

実行中のメソッド名を取得

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("-----------------------------");
}

インテントについて

  • インテントとは「機能」の呼び出しのこと。
    例えばウェブブラウザーを呼び出すときは、
    ブラウザーの名前を指定すること無く、
    ウェッブラウザーの「機能」を呼び出す。
    すると、ウェブブラウザー機能を持ったどのソフトを起動するか、
    選択画面が表示される。
  • またインテントはアクティビティー切り替えにも利用される。

独自Classの getString について

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 の追加

AndroidManifest?.xml に追加するのを忘れないようにしよう。
また追加は「新規」-「Activity」-「Brank Activity」で
追加するとレイアウトも一緒に追加されて便利。
以下はAndroidManifest?.xml

<activity
    android:name=".Sample0501"
    android:label="@string/title_activity_sample0501"></activity>

PHP: Hypertext Preprocessor

http://www.php.net/

phpで、Nikonのカメラで撮ったjpeg画像から、レンズ情報を抜き出す方法

mbstringの設定

mbstring の install

yum install php-mbstring

mbstring の設定

[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 をインストール

EPELとRemiリポジトリを追加

  • EPEL リポジトリ
    yum install epel-release
  • Remi リポジトリ
    rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm

旧PHPの削除

 yum remove php-*

PHP5.6のインストール

sudo yum install --enablerepo=remi,remi-php56 php php-devel php-mbstring php-pdo php-gd php-xml php-mcrypt

php-mysql のインストール

sudo yum install -y http://repo.mysql.com/mysql-community-release-el6-5.noarch.rpm

 sudo yum install phpMyAdmin?

そのたダメおしインストール

 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を編集

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

php5 -> php7 へマイグレーション(CentOS7へのインストール)

Apacheのインストール

sudo yum install httpd

mysqlのインストール(CentOS7)

php のインストール(CentOS7)

sudo yum install --enablerepo=remi,remi-php70 php php-devel php-mbstring php-pdo php-gd
sudo yum install --enablerepo=remi,remi-php70 php-mysqlnd

mysql関連のソースコード変更

  • 参考リンク(外部) : mysqlをmysqli(手続き型)に書き直した時のメモ
  • $con = mysql_connect($DBSERVER, $DBUSER, $DBPASSWORD);
    • -> $con = mysqli_connect($DBSERVER, $DBUSER, $DBPASSWORD);
    • 「i」を付ける
  • $selectdb = mysql_select_db($DBNAME, $con);
    • -> $selectdb = mysqli_select_db($con, $DBNAME);
    • 「i」を付け、$con と データベース名を逆にする
  • $col = mysql_fetch_array($rst)
    • $rst = mysqlmysqli_query($con, $sql);
    • -> $col = mysqlmysqli_fetch_array($rst)
    • 「i」を付ける
  • mysql_affected_rows()
    • $con = mysqli_connect($DBSERVER, $DBUSER, $DBPASSWORD);
    • $rst = mysqli_query($con, $sql);
    • -> mysqli_affected_rows($con)
    • 「i」を付ける
  • ONLY_FULL_GROUP_BY の制限
    • 参考リンク(外部) : 脱!ゆるふわMySQL
    • group by する際, select で指定している項目は全て書かなければならない。
      • 以下はエラー
        select columnA, columnB, columnC, columnD from tableName group by columnA
      • 以下へ修正
        select columnA, columnB, columnC, columnD from tableName group by columnA, columnB,  columnC, columnD

その他

  • split は使えない
    • explode へ変換

エラー表示

リンク

PHPファイルで設定 1

<?php
// エラーを出力する
ini_set('display_errors', "On");
?>

PHPファイルで設定 2

<?php
// エラーを出力する
ini_set( 'display_errors', 1 );
?>

httpd.conf or .htaccess

php_flag display_errors off

php.ini

display_errors = Off

java

servlet の 405 エラー

  • doGet メソッドに super.doGet(req,resp); を含めてはいけない。

Subversion

参考サイト(Linux-UbuntuでのSubversionのインストールと使い方)

Install

  • Apache のインストール
    sudo apt-get install apache2
  • Subversion のインストール
    sudo apt-get install subversion subversion-tools libapache2-svn
    
    

Subversion の設定

  • 必要なファイルを /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>

リポジトリの作成

sudo mkdir /home/svn/
cd /home/svn/
sudo svnadmin create test

作成したファイルの権限変更

cd /home/svn/
sudo chown -R www-data:www-data test

ElipseへSubversion client をインストールする。

Android studio, Subversionの設定(中身なし)

  • [バージョン管理]-[Enable version control integration...]
  • [Subversion]を選択しOK
  • 最初にチェックアウトを行う
    • [バージョン管理] - [バージョン管理からのチェックアウト]-[Subversion]

UML図

シーケンス図(Sequence Diagram)

  • 自動で書けるツールを色々と探してたが見つからなかった。
    ただし以下のソフトはとても良かったので紹介。

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2018-11-06 (火) 20:56:23 (9d)