Cody Blog

使用 Style 或 Theme 修改 Android 元件的外觀

前言

在 Android 中有 style 跟 theme 兩種不同方式來設定元件的外觀

Style

在 res/values/styles.xml 新增一個 style 標籤,讓View的背景顯示為深藍色:

<resources>
    ...
    <style name="BeatBoxButton">
        <item name="android:background">@color/dark_blue</item>
    </style>
</resources>

使用方式則是在想套用這個 stytle 的 view 物件上加上 style 屬性:

<Button
    ...
    style="@style/BeatBoxButton.Bold"/>

這麼做的好處就是當應用程式如果有很多 button,若是要換別的顏色的話,就只要更新 style 就好了。

Style inheritance

另外 style 跟 class 一樣有繼承的使用方式

方法一:

加上 parent 的屬性:

<style name="MyButtonStrong" parent="MyBoxButton">
    <item name="android:textStyle">bold</item>
</style>

方法二:

在 Parent 的名稱後面直接加上 .,例如: "MyButton.Bold"

<style name=MyBoxButton.Bold">
    <item name="android:textStyle">bold</item>
</style>

兩這種方法都可以達到 style inheritance 的效果

Theme

針對整體性的 style,如果 app 有 …

解決開啟 android emulator 記憶體用量不足的問題

最近 Android 2.0 新推出 Emulator 比過去的效能好很多,所以就從用 Genymotion 改回用 Google 的 Emulator,但是在開發的時侯,發生一個小問題,在我的 Mac 上面沒辦法同時間開多個 Emulator,會出現以下錯誤訊息:

emulator: The memory needed by this VM exceeds the driver limit. HAX is not working and emulator runs in emulation mode

在 OSX 的解決方案如下:

找到 Android SDK 裡面的 android-sdk-macosx/extras/intel/Hardware_Accelerated_Execution_Manager 資料夾裡面有一個 HAXM installation執行檔,可以重新安裝 HAXM(Intel Hardware Accelerated Execution Manager),增加記憶體用量:

$ ./HAXM\ installation -m <最大記憶體使用量>

例如,我想同時間開啟 Nexus 5X,跟 Nexus 5P。這兩支各別都是 1.5 GB的記憶體使用量,所以需要把 HAX 增加到 3072MB:

$ ./HAXM\ installation -m 3072

安裝完成之後就可以同時開兩個 Android emulator 了:

nexus5x-neux5p

在 Genymotion 的 Android 6.0 Marshmallow 裝置上安裝 Google Apps

genymotion

Android Studio 官方有 AVD(Android Virtual Device),運作在 QEMU 的 Emulator 之上,使用上效率不好,所以近期開發 Android 都是使用 Genymotion 這套 Android emulator(仿真器)上。Genymotion 是基於 VirtualBox 基礎上,而 Genymotion 上的 virtual device 預設沒有Google Play、Google Maps 等 Google Apps。如果想要在上面裝 Google Apps,需要以下額外的設定:

註: 如果要安裝 gapps 在 Genymotion 推出的 PREVIEW - Google Nexus 5X - 6.0.0 或 PREVIEW - Google Nexus 5P - 6.0.0話,則需要額外的步驟:

  1. 安裝 Genymotion-ARM-Translation_v1.1.zip,重啟裝置

install-1

install-2

  1. 安裝 gapps-L-4-21-15.zip
  2. 先登入 Google 帳號
  3. 安裝 benzo-gapps-M-20151011-signed-chroma-r3.zip,重啟裝置

google-play

這樣就有 Google Play 可以用了

用 awscli 刪除 AWS 的 Bucket

最近需要把 AWS 上面的 bucket 裡面的大量檔案刪除,步驟如下:

安裝 awscli

$ pip install awscli

設定 AWS 的 Configuration

$ aws configure

Empty bucket

aws s3 rm s3://<YOUR_BUCKET_NAME> --recursive

Delete bucket

aws s3 rb s3://<YOUR_BUCKET_NAME> --force --region ap-northeast-1

不廢話 App 成長指南 筆記

growth

成長的秘密

讓少數的使用者熱愛你的產品,而不是擁有一堆對這個產品漠不關心的使用者

It’s better to make something a small number of people love than something a large number of people don’t care about.” -Paul Buchheit

在擴展產品之前,你必須專注在user engagment,讓這個 App 會吸引使用者的注意。

cover

成長指標

首先要找到一個適合的 App 的成長指標,可透過下列的兩個問題來尋找:

  1. 那一個指標可以證明這個 App 的確有解決使用者的問題?
  2. 這個指標的發生的頻率多久才是對使用者有意義的?

例如: 遊戲(天) < 天氣(天) < 手電筒(月) < 旅行(月)

你就不應該期待一個平常的使用者會每天都開手電筒的 App.

持續改善

當找到使用者參與指標(User engagement metric)的之後, 就可以用這些資料來改善 App。一般來說可以從 Google Analytics 和 Mixpanel 開始。當產品做了一些修正的時侯,持續關注使用者參與指標,確保 App 是往正確的道路上

如果想更深入了解,可參考:AdMob No-Nonsense Guide to Growing Your Mobile App

Postgresql 常用的指令

最近一年比較常使用 postgresql 資料庫系統,這篇把一些常用的指令整理一下:

安裝 postgresql server

In Ubuntu:

$ sudo apt-get update
$ sudo apt-get install postgresql postgresql-contrib

In OSX,使用 homebrew:

$ brew upgrade postgresql

建立 DB

$ initdb ~/pgdata

啟動 postgresql server

$ pg_ctl -D ~/pgdata start

連線到指定的 DB

$ psql -h localhost -p 5432 -d docker -U docker --password

備份資料庫

把 database 匯出成一個 sql 文字檔案

$ pg_dump -U {user-name} {source_db} -f {dumpfilename.sql} -h {host} -p {port}

匯入資料庫

從 sql 文字檔案匯入到 database

$ psql -U {user-name} -d {desintation_db} -f {dumpfilename.sql}

刪掉資料庫

$ dropdb {database_name}

看影片練聽力!推薦7個英文媒體網站

cover 整理了一下,可以用來學英文聽力的新聞媒體網站

科技新聞

  • Tech Crunch Report: 以矽谷創業新聞為主,我最常看的新聞來源之一,每個工作日約3~5分鐘
  • Verge: 美國科技媒體

國內新聞媒體

外國新聞媒體

英文學習網站

  • VoiceTube: 很多 YouTube 的影片加上字幕以供學習
  • EnglishCentral: 很多不同的主題
  • TED: 很多影片都有英文字幕以供學習

日本達摩翁的故鄉 - 群馬縣高崎市

cover

群馬縣高崎市

高崎是是群馬縣西南方的一個人口近40萬的城市,以日本達摩翁聞名。

takasaki-map

高崎 JR 車站、商店隨處可見各式各樣的達摩翁擺設。

daruma

從東京搭乘新幹線到高崎車程約一個小時。我們是從東京出發,搭乘北陸新幹線的淺間(Asama) 611號列車。 asama611 asama611-2

淺間號列車是以聳立在群馬縣和長野縣間的淺間山為名: asama-mountain 新幹線-ticket

高崎市離輕井澤新幹線車程只有15分鐘,許多遊玩輕井澤的旅客也會選擇住在住宿費用比較便宜的高崎市。

免費市區單車

在高崎市的行程原本是打算用公車+步行來完成的,但在路上意外看到有免費的市區單車,那就想說不如就改成單車之旅吧。

bike-stand bike

租借方式很簡單,就像台灣大賣場的推車一樣,塞入100元硬幣,就可以騎走了,對於觀光客而言可說非常的方便。 coin

目前在市區共有15個租借點:

bike-map

租借時間只有從 AM9:00 到 PM10:00,而在租借時間之外,腳踏車會被鎖上鐵鍊的。

達摩的故鄉

高崎開往長野原草津口的路上,我們搭了草津3號,在車上買了全國知名的日本鐵道便當: 達摩茶飯便當

達摩便當-拼圖 Top6-達摩茶飯便當 來源

回台灣之後,這個達摩就成我的零錢存錢筒,是一個相當實用的記念品。

在高崎市,我們就騎著單車,往達摩翁工廠大門屋方向慢慢騎去 route

park dog

大門屋

大門屋 大門屋

達摩點睛的說明 Q&A 達摩翁可幫助你完成願望,當你許願的時侯,先點上左眼。待願望完成之時,就再點上右眼,並把達摩翁帶回達磨寺焚化供奉。

當然,我們也不忘帶了幾尊達摩翁回家 daruma-at-station

高崎可可大飯店

coco-grand-tripadvisor

這次在高崎市住的是高崎可可大飯店(Hotel Coco Grand Takasaki),雙人房一晚約14000日幣。在 Trip Adavisor 有極高的評價。下次會想再來

coco-grand-restrant

餐點資訊:

  1. 早餐 Buffet: 1200 日幣
  2. 午餐套餐: 1800 ~ 2000 日幣

使用 imgur 來當 blog 圖床

這個 Cody Lab Blog 的圖片都是放在 imgur 的雲端圖片服務,用了一陣子,感覺還不錯。 使用 imgur 來當圖床有以下優點:

  1. 圖片不會被刪除,即使瀏覽量很低 [1]
  2. 桌面版可以使用Chrome 的 Extension,可支援直接 copy & paste 跟拖拉上傳。
  3. 預設圖片上傳都是私密的,除非知道圖片網址,否則無法瀏覽
  4. 可以直接用網址來控制圖片的大小
  5. 完全免費

目前 imgur 支援六種不同尺寸的縮圖: imgur-url

例如有一張圖片是存放在: http://i.imgur.com/y4UZ1mx.jpg,如果想要不同尺寸的話,就直接在.jpg副檔名前面加上參數,

Huge thumbnail 1024x1024 http://i.imgur.com/y4UZ1mxh.jpg img

Large thumbnail 640x640 http://i.imgur.com/y4UZ1mxl.jpg
img

Medium thumbnail 320x320 http://i.imgur.com/y4UZ1mxm.jpg
img

Small thumbnail 160x160 http://i.imgur.com/y4UZ1mxt.jpg
img

Big square 160x160: http://i.imgur.com/y4UZ1mxb.jpg
img

Small square 90x90: http://i.imgur.com/y4UZ1mxs …