Posts for: #Android

HTC U11

自己用了兩年多的 HTC U11 ,其實還不錯

2017 年的旗艦手機處理器,現在還是相當好用,大概就剩懷念 3.5 mm 音源孔,不然對我來說就是完美了

看看現在網路上,二手機,價格已經到了 3~5 千元

Android 和 iOS 不同點

這真的要靠背一下,為什麼很少聽人說, Android 用 micro usb 基本上是設計有問題壓

iPhone 上面的插座,是母,線是公的,會聽到有人,有時候說線很爛,常斷之類的

可是 Android 上面的傳輸插座 micro usb 是母的,也是公的,中間那一個小插片,倒是線的接頭耐用多了,這一種設計

會斷,就是斷在手機的插座上,這根本就是做錯的東西吧

就是古典 Android App 發佈

Google Play 連結

https://play.google.com/store/apps/details?id=com.upassing.justclassic

這是一個專為古典樂做的 App.

所有的內容來源,都是屬於公共領域的音樂,小弟還蠻喜歡開放音樂,商業的創作也喜歡,只是,自由音樂在法律上,不會像商業的音樂全被唱片公司控制

未來如果真的有人喜歡自由開放的古典音樂,我會繼續改善這一個 App,也會加上廣告,以維持下載的頻寬

如果想要鼓勵我,繼續改善這一個 App,給個五顆星,還有您寶貴的建議,目前是非常 beta 的版本,基於 release early release often 的原則就先發佈了

最重要的就是一起聽音樂吧

這一次,寫這一個 Android 的心得,就是 IDE (Android Studio) 的開發環境,真的很聰明,自己不會寫 Android

以前比較多是用 cordova 包的 App , Java 的書也都沒 K 過,居然能發佈 very early beta release 的版本,還有很多的調教優化要邊做邊學

現在寫 Python Golang Node.js 的時候,用 Vim 寫,也都會一大堆提示,及提醒

Golang 裡面左括弧,寫成了冒號
Python 裏冒號變成左括弧
javascript 裏 for loop 寫成 Python 或是 Golang 的樣式
Golang 裏用了 Java for loop 的語法

這些全靠 Vim 或是 IDE 幫我檢查,以後要是有機會去面試,要是用筆寫程式,不能用我的電腦,應該會死的很慘 ;-)



PS: 給宅爸在家就是都會做一些怪怪的東西

參考資料
http://code.tutsplus.com/tutorials/create-a-music-player-on-android-user-controls--mobile-22787

Arduino 藍芽遙控戰車

暑假到了,小孩也大一點了

以前哪些簡單的積木騙不了他了

現在一片 Arduino 的板子也是便宜到不像話,嘿嘿

我也可以順便作玩具來玩

Arduino 真的便宜又大碗,我用的是超值的 MEGA 版,要是不需要太多 IO 腳位的話,UNO版 就很夠用了,也有很多的懶人電源模組可以用,我要驅動的小坦克

是用田宮模型組裝的,很適合和小朋友一起做,樂趣無敵,另外電源的部份,我串兩顆 18650 的鋰電池,充完電,單顆有 4.12 ~ 4.18 Volt左右, 串兩顆,電壓大概有 8.3 ~8.4 V,驅動沒問題,不過,給田宮附的馬達,規格是說只吃到 3V,所以還是保守一點,我用 PWM 控制,再用電錶量一下,控制在 6 V 以下,算是很勉強,玩到目前還沒有燒焦味

電源模組用 L298D 就很夠了,但是,我用 L298P 少控制兩隻腳,HIGH ,LOW 就代表正向,反向了

藍芽模組用的是便宜好用的 HC-05

Android 手機遙控器,就自己刻一下,用寫 html5 遊戲的方式,直接用輕量過的 phaser 遊戲框架,包 cordova bluetooth serial 通信的模組

一個 android 的坦克搖桿就有了

編輯環境,當然是 VIM 直接用 ino 工具,測試馬達電機之前,都是先把訊號送麵包版的 LED 檢查程式先




Arduino http://www.arduino.cc/

Phaser http://phaser.io/

Android http://developer.android.com/

Cordova http://cordova.apache.org/

Cordova Bluetooth Serial Plugin https://github.com/don/BluetoothSerial

ino http://inotool.org/

Android TankRemote source https://github.com/terryh/TankRemote

TankRemote Google Play TankRemote

PS: 焊接馬達電線的時候,線的顏色放錯了,紅色變成反向了,最近桌子亂的太不像話

LG-P500

設定 Udev rules

$ sudo vim /etc/udev/rules.d/51-android.rules

SUBSYSTEM==“usb”, ATTR{idVendor}==“1004”, MODE=“0666”, GROUP=“plugdev”

$ sudo chmod a+r /etc/udev/rules.d/51-android.rules
$ sudo udevadm control –reload-rules # In theory not necessary.

然後把手機開 Debug Mode 用 USB 連接線接上

新玩具LG-P500



沒有太多原因,單純就是太超值了,比HTC的快便宜一半,這些3C的東西花大錢買等於幫人家發股票,或是把錢丟水裡一樣,跌價,只比情人節的花慢一點而已,手機非常的強大,以後開發 application , Mobile version 應該是不可缺的一項了,android 就是對工程師的味

就連在 APPLE STORE 上面很貴的 ssh client,也有類似的 ConnectBot,免費,真是讚

<img src=“https://lh4.googleusercontent.com/_Bsjm2Qp0Duc/TWJ7VtAnQBI/AAAAAAAABHw/SWu-pUjQvL8/s800/snap20110221_224812.png alt=”" />

Scala with andriod

最近覺得最好玩的東西,就是用 Scala 來寫 android 的程式了

對 Scala 陌生的人可以先看看,墳墓大 的簡報



簡報很精彩,裡面我覺得重點就是第 8 頁,用 Java 來開發一點都沒有興奮的感覺,小宇宙燃燒不起來,學 scala 好玩的地方,就是可以慢慢地嘗試 function programing 的方法,又可以玩 android 的 application,算是蠻有趣的,比起 Haskell 算是軟很多,不會一下子腦筋轉不過去


在 andriod 上的設定也是相當的簡單,下面是一起搭配 sbt 來作 build 的方式

步驟

1. 下載安裝 scala http://www.scala-lang.org/downloads

2. 下載安裝 android sdk http://developer.android.com/sdk/index.html

3. 安裝 sbt http://code.google.com/p/simple-build-tool/wiki/Setup

4. git clone https://github.com/steve918/android-plugin.git

5. cd android-plugin

6. script/create_project foo com.example.android # #這樣就建立了一個 foo 的 andorid 專案資料夾

7. cd foo

8. export ANDROID_SDK_HOME=path/to/android_sdk # 要改成你真正的 SDK 位置

9. sbt package-debug # 編譯套件

10. ls target/scala_2.8.1/ # 看看有沒有 foo_2.8.1-0.1.apk,可以用 adb install foo_2.8.1-0.1.apk , 安裝到 emulator 上去看看

收工


參考文章

http://zegoggl.es/2009/12/building-android-apps-in-scala-with-sbt.html

另外還有直接用 ant build 的方式,用標準 andriod 指令建立專案,然後,在 build.xml 裡再 import build-scala.xml 的方式,來編譯 scala 的 andriod 專案,連結 http://lamp.epfl.ch/~michelou/android/scala-to-android.html

我自己比較喜歡,用 sbt 的方式,總覺得 xml 不是方便有效率的格式

另外有興趣,想用 scala 在 android 的專案,寫 testcase 也是用 sbt 的方式,可以參考,墳墓大的 github 範例專案 https://github.com/brianhsu/ScalaTestAndroidExample


PS:
1. 用 script/create_project 的話,必須把 create_project 裡面的 val pluginDef = val android = “org.scala-tools.sbt” % “sbt-android-plugin” % “0.5.1”

2. 也可以用 https://github.com/jberkel/android-plugin 的版本,只是 project/build/你的project.scala 裡面要自己重定 adbPath,因為 android SDK 2.3 位址換了

3. 如果有修改到 android-plugin 的話,記得用 sbt publish-local 安裝,才會裝這一個 local 修改過得版本

PS: eclipse 裝在 debian 上時,如果沒有要用 ipv6 可以把改 /etc/sysctl.conf

net.ipv6.bindv6only = 0

這樣 eclipse 要 update 的時候,就會用 ipv4