PEEE802.11

モバイルソフトウェアエンジニアの備忘録

WebView.saveState()のJavaDocの解釈

WebView.saveState()は、WebViewの状態をActivity破棄前に保存するためのメソッドである。が、どうもJavaDocがもやもやする。 WebView | Android Developers Saves the state of this WebView used in Activity.onSaveInstanceState(Bundle). これはわかる。…

Android Studio 3.4/Gradle Plugin 5.1.1にアップデートしたらRobolectricのテストが失敗する

TL;DR Robolectric 3.x(AndroidXにアップデート前のバージョン)を使っている状態でAndroid Studio 3.4にアップデートすると、Android Gradle Plugin 5.1.1+が強制されて、gradle.propertiesにandroid.enableUnitTestBinaryResources=falseを書かないとRobo…

Androidアプリでstaticフィールドは絶対ではない

Androidアプリで、Contextをどこからでも参照する方法として以下のようなコードがよく紹介されている。 staticでApplication Contextを保持するクラス public class ContextHolder { private static Context mContext; public static void setContext(Contex…

IPv6をIPoEで使う + IPv4をDS-Liteで使う

自宅のブロードバンド環境は、auとの契約の関係もあり長らくJCOMであった。東京在住で、遅い時で2Mbpsほど、速い時で15Mbpsほど出ていたのでそこまで不満に感じていなかった。しかし、そろそろ契約更新月なのと、Wi-Fiルータを新調して11acにしようか考えて…

転職して1ヶ月経ったので振り返ってみる

基本的に前職同様ソフトウェア開発なので大きく戸惑うことはないのだが、ところどころ違う点が見えてきた。 プロジェクトの進め方 前職だとリーダーがスケジュールを決めて、各マイルストーンまでにやるべきことを洗い出し、時間かけて準備することや不確定…

前職の感想

よかった点 旧態依然とした日本企業の悪い風習や文化がなく自由な雰囲気であるため居心地は良い 服装は自由。社内ではみんな「さん」付けで呼び、役職を振りかざす人はいない。ウェブ上でハンコリレーだの冗長な会議だの飲み会強制参加やアルハラパワハラだ…

USBバルク転送の挙動(ZLP: Zero Length Packet)

USB機器のデバイスドライバ書いてる人なら当たり前の話だとは思うんだけど、専門外の自分が調べる機会があったのでメモ。USBの転送モードはいくつかあって、そのうちの一つにバルク転送というものがある。大容量のデータをやりとりするのに適した転送モード…

職場を離れて一人で考える時間について

自分は基本的には職場で仕事に集中して家ではリラックスしたいタイプで、オンとオフはけっこうはっきりしている。仕事モードの時は、仕事話とその延長の雑談であればいいが、あまりに離れたプライベートな話題などは話に入っていけなかったりする。コンテキ…

SwitchPreferenceでSwitchの状態を変更する

単純なことのようだけどなんかパッと見つからなかったのでメモ。 setChecked(boolean checked) でON/OFFできる。 SwitchPreference sp = (SwitchPreference)findPreference("hoge_switch"); sp.setChecked(true);

Mac用MarkdownエディタMacDownを使い始めた

開発しながらメモを気軽にとりたい、それならMarkdownのほうが見やすいし割と書き慣れてるし、ということでMac用のMarkdownエディタを探している。自分にとって重要な点は以下。 リアルタイムプレビュー Macネイティブのシェルライクな編集エリアのキーバイ…

mac mini 2014 late + Yosemiteでスリープから復帰できない

mac

今までメインでMacbook Airを使ってたのだけど、Androidアプリ開発でEclipse ADTを動かしてると動きがもっさりしてかなりストレスフルであった。Android Studio使うともうちょいましでストレスはやや軽いが、それでも快適とは言い難い。SSDとは言えノートPC…

init.rcの実行順番

Androidが起動する際、kernel起動後にinit.rcに記述した通りにファイルシステムのパーミッション設定やら各種サービス起動やらが実行される。rootdir/init.rc - platform/system/core - Git at Googleここで、on early-initだとかon initだとかいくつか起動…

XMLを編集してレイアウトを変更するとエミュレータ上で例外が発生する

ADTでレイアウトを調整するためにXMLを直接編集していたら、レイアウトエディタ上では問題なく表示されているのにGenyMotion上で実行すると以下のエラーを吐いて実行できなかった。 03-31 13:34:34.416: W/dalvikvm(1475): threadid=1: thread exiting with …

UbuntuのChrome上にSynergy経由でクリップボードからペーストするとフリーズする

Ubuntu 12.04 (server) + WIndows7 (client) でSynergyを使っているのだけど、Windows7でクリップボードにコピーしたテキストをUbuntuのChrome上でペーストしようとすると、Chromeがフリーズする現象に悩まされている。Ctrl+vでもミドルクリックでも起こる。…

ARM上でBoost::shared_ptrがリンクエラー

armでlibgnustl_shared.soをSTLとしてリンクし、boost_1_55_0でshared_ptrを使うと、undefined referenceのエラーが出る。Android用GNU STLはAndroid NDK標準のSTLと違って基本的にほぼx86用同等だと思っていたけど…と思っていたら以下に解決策があった。htt…

C++でBoost使わずに文字列を分解する

boost::splitを使うと文字列をデリミタで分解してコンテナに格納することができるのだけど、boostが無い環境で同等の機能が欲しくなったので書いてみた。find_first_of()とsubstr()を使う。 void split(std::vector<std::string> &v, const std::string &input_string, co</std::string>…

井の中の蛙

久しく文章を書いていない。もう6、7年ぶりになるだろうか。 最近、30代を目前にして、ソフトウェアエンジニアとして岐路に立っていると感じる。今後エンジニアメインで行くのか、マネジメント中心のジェネラリストへ転身するのか。エンジニアでもコーディン…