Androidアプリ開発日誌 1日目
はじめに
Androidアプリの開発をやってみたいなーと前々から思っていたので始めてみました。
以前も同じように考えては入門書読んで挫折してたので、今回は開発日誌をつけつつがんばってみます。
目標は3〜4ヶ月くらいで何かしら単純なアプリをリリースする。ということにします。
開発環境の準備
手元の環境は
です。
AndroidStudioのLinux版は「Android Studio と SDK ツールをダウンロードする | Android Studio」にありました。
プロジェクトの作成
特別なことはせず、EmptyActivityを選択してプロジェクト作成。
.gitignoreファイルをGitHubから取ってきてプロジェクトのルートフォルダに置いておきます。
wget https://github.com/github/gitignore/blob/master/Android.gitignore ${PRJ_ROOT}/.gitignore
Fragmentの実装
今日はFragmentの実装を試してみました。
最近(?)のAndroidアプリはActivityに大きな役割はもたせず、代わりにFragmentがViewを管理したほうがいいらしいです。
まずは上を参考に、上のリンクにある「レイアウトファイルからFragment追加する方法(静的な追加)」と「コードからFragmentを追加する方法(動的な追加)」のに種類を試してみました。
動的なFragment追加は、あらかじめActivityのレイアウトファイルにLinearLayoutというコンテナ(入れ物)を置いておき、そこにFragmentを追加するって形になるんですね。へー。
今日は力尽きたんでこのへんでおしまいです。
Pythonで複数の配列を同時にソート
Python使ってて、複数の配列を同時にソートしたくなることありますね。
たとえば、キー配列をもとに値配列をソートしたいときとか…
そんなときはzip
をうまくつかってください。
a = [2, 0, 1] b = ["a", "b", "c"] # zipで二つの配列を統合 c = zip(a, b) c.sort() # 統合していた配列をもとに戻す a, b = zip(*c) print(a) print(b) # (0, 1, 2) # ('b', 'c', 'a')
結果を見ると配列a
をキーにしてソートされていることがわかります。
結果がタプルで得られてることに注意しましょう。
ちなみに、配列が3つ以上でもzip(a, b, c, …)
と増やしていけばOKです。
もしソートに使うキー配列を変えたい場合には、itemgetter()
を使うとよいです。
from operator import itemgetter a = ["a", "b", "c"] b = [2, 0, 1] c = zip(a, b) # itemgetterには何番目の配列をキーにしたいか渡します c.sort(key=itemgetter(1)) a, b = zip(*c) print(a) print(b) # ('b', 'c', 'a') # (0, 1, 2)
これでいくらでも好きにソートできますね!以上!
XenServer の dom0 で yum を使う
XenServer はデフォルトでは yum が使えなかったので、使える方法を探しました。
環境
XenServer 7.0.0
yum 有効化
/etc/yum.repos.d/CentOS-Base.repo
内のリポジトリ情報を編集します
- コメントアウトされた baseurl を有効にする(
#baseurl
をbaseurl
に変更) enabled=0
をenabled=1
に変更name
行の$releasever
を7.2.1511
に置換する
sed -i "s/^#baseurl/baseurl/" /etc/yum.repos.d/CentOS-Base.repo sed -i "s/^enabled=0/enabled=1/" /etc/yum.repos.d/CentOS-Base.repo sed -i "s/\$releasever/7.2.1511/g" /etc/yum.repos.d/CentOS-Base.repo
ダメなところ
yum update
をしてパッケージ更新しようとすると、エラーメッセージが表示される。
Error: Package: sm-1.12.2-xs202.518.x86_64 (@install/$releasever) Requires: xenserver-multipath Removing: device-mapper-multipath-0.4.9-85.el7_2.1.xs13.x86_64 (@install/$releasever) xenserver-multipath Updated By: device-mapper-multipath-0.4.9-85.el7_2.5.x86_64 (updates) Not found You could try using --skip-broken to work around the problem You could try running: rpm -Va --nofiles --nodigest
とりあえす --skip-broken
オプションを付けて対処。
参考サイト
Xenserver 7.0 Repositories - Command-Line Interface - Discussions