Androidログライブラリ orhanobut/logger を試す
デフォルトのLogクラスは気が利かないので、 いいライブラリを探してたらこんなの見つけた。
2016/10/23時点でスター数4835
信頼ありそう!
さっそく使ってみよう。
まずはbuild.gradleに追加
dependencies {
compile 'com.orhanobut:logger:1.15'
出力させてみよう Loggerクラスからdメソッドで色々渡してみる
public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.content_scrolling); Logger.d("Test comment"); putLog(); } private void putLog() { Logger.e(new Exception(),"エラー"); putJsonLog(); putTagLog(); } private void putJsonLog() { Logger.json("{\"date\":\"10月23日(日)\",\"temperature\":\"32℃[+1] 28℃[-1]\",\"wave\":\"2メートル後1.5メートル\",\"weather\":\"晴後雨\",\"wind\":\"南西の風後北の風\"}"); } private void putTagLog() { Logger.t("TAG").d(this.getClass().getCanonicalName()); } }
出力させた結果
- 線でログを囲ってくれる
- メソッドの階層まで出る
- jsonは自動整形してくれる
線で囲ってくれるのは個人の好みに別れるところですな 俺は気にならないし、見やすいと思うね
少し気に入ったので暫く使ってみよっと
あ、作ったサンプルはGithubにあげたよ GitHub - banbara23/Android-logger-sampe
generate sigend apkでError: Expected resource of type string [ResourceType]
アプリをリリースしようとgenerate sigend apkを実行すると、以下のエラーが出てきた。
Information:Gradle tasks [:app:assembleRelease] /パス/Fragment$$ViewBinder.java Error:(53) Error: Expected resource of type string [ResourceType] Information:1 error Information:0 warnings Information:See complete output in console
解決方法
このリンクによると... stackoverflow.com
以下をapp/build.gradleに追加する
android { lintOptions { disable "ResourceType" } }
エラー消えました、解決!
Information:Gradle tasks [:app:assembleRelease] Information:BUILD SUCCESSFUL Information:Total time: 38.194 secs Information:0 errors Information:0 warnings Information:See complete output in console
MacにJava8をインストール
Android Studio2.1.3にアプデし、compileSdkVersion=24にしてビルドしたところ
# Gradle Console FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':app:compileDebugJavaWithJavac'. > compileSdkVersion 'android-24' requires JDK 1.8 or later to compile. * Try: Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. BUILD FAILED
とエラーになりビルドに失敗した。
Java8をインストールせよ、というのだ。
Java8インストール手順
- Java SE - Downloads | Oracle Technology Network | Oracle
からjdk-8u101-macosx-x64.dmgを取得
JREじゃなくJDKね - jdk-8u101-macosx-x64.dmgを起動してインストール
- terminalから以下のコマンドでjava8になってれば完了
$ java -version java version "1.8.0_101" Java(TM) SE Runtime Environment (build 1.8.0_101-b13) Java HotSpot(TM) 64-Bit Server VM (build 25.101-b13, mixed mode)
古いJavaを消す
j以下のパスに古いJavaがあるので、jdk1.7.0_71.jdkのみを消した
drwxr-xr-x 3 root wheel 102B 7 15 2015 1.6.0.jdk drwxr-xr-x 3 root wheel 102B 11 2 2014 jdk1.7.0_71.jdk
1.6.0.jdkは使うので残した。
UbuntuでAndroidのスクリーンショットを日付ファイル名で保存したい
毎度忘れるのでブロクに記録しておく
まず以下のシェルスクリプトを作成
今回はファイル名をscreenshot.shとした
#!/bin/bash DATE=`date +"%Y-%m-%d-%H-%M-%S"` FILENAME="s-${DATE}.png" echo "capturing ${FILENAME}..." adb shell screencap -p "/sdcard/${FILENAME}" adb pull /sdcard/"${FILENAME}" ~/Pictures/ adb shell rm "/sdcard/${FILENAME}" echo "saved ${FILENAME}."
次に.bashrcにでもaliasを作る
.bashrc
alias sshot="~/tools/screenshot.sh"
保存したらsourceを忘れずに
source .bashrc
あとはターミナルから
sshot
と実行すれば、Picturesディレクトリ内に日付ファイル名でスクショが保存される。
s-2016-08-02-10-35-46.png s-2016-08-02-10-36-04.png
RaspberryPi3ド素人が初めてのLチカ
抵抗って何?というレベルのド素人が、
Lチカまで到達できたので嬉しさのあまり記録
配線
こんな感じ
python
ラズパイのターミナルに
$ python
と打ち込むと対話型モード(インタラクティブモード)となり、1行毎にプログラムを実行できる
以下、1行ずつ入力orコピペで実行
import RPi.GPIO as GPIO //RPi.GPIOモジュールを取り込み GPIO.setmode(GPIO.BCM) //GPIOの端子の選び方の選択 LED1 = 5 //GPIOを選ぶ、GPIO5をLED1にする GPIO.setup(LED1, GPIO.OUT) //LED1を出力、GPIO端子をGPIO番号で選択 GPIO.output(LED1, GPIO.HIGH) //LED1をHIGH(+3.3V)にする、HIGHになるとLED1に電流が流れてLED1が点く GPIO.output(LED1, GPIO.LOW) //LED1をLOW(0V)にする、LOWになるとLED1に電流が流れなくなりLED1が消える GPIO.cleanup() //GPIOの設定を消す、忘れると次に使う時にGPIOが使えなくなる事あり //Pythonを終わる時は exit()
感想
試行錯誤しながら無事にLチカできた!
たかがLEDライト1つ光っただけで、こんなに感動するとは思わなかった(笑)
参考サイト
自分はtechshareのkitを買ったので、配線とpythonプログラムはtechshareのサイトを参考にした。
でも誤字があるので要注意(最後のcleanup(がcleanuoになってる)
対話型モード(インタラクティブモード)
また、電子工作ド素人の自分には部品の説明が必要だったので、以下のサイトが分かりやすかった
テックシェアストア(TechShareStore)
電子工作たのしいねー!
flash-all.sh実行で「waiting for any device」と出る対応
PC環境:Ubuntu14.04
目的 Nesus5xにファクトリーイメージを入れたい
まず、以下のリンクから"bullhead" for Nexus 5xの好きなイメージをダウンロードして解答する。
今回は6.0.1 (MXC89K)を選んだ。
あとは、UbuntuにAndroidをつなげてflash-all.shをターミナルから実行。
だがしかし、
< waiting for any device >
と表示され何も進まない...
解決方法
51-android.rulesにAndroid端末を検出させる設定を追加する必要がある。
$ sudo gedit /etc/udev/rules.d/51-android.rules
geditで51-android.rulesが開かれるので
下記リンクを開き、
#Acer SUBSYSTEM=="usb", ATTR{idVendor}=="0502", MODE="0664", GROUP="plugdev" #ASUS SUBSYSTEM=="usb", ATTR{idVendor}=="0b05", MODE="0664", GROUP="plugdev" ...
となっている表のテキストを全てコピーして、51-android.rulesに貼り付けて保存する
最後に許可を与える
$ sudo chmod a+r /etc/udev/rules.d/51-android.rules
これでflash-all.shを実行すると「waiting for any device」は出なくなりましたー