[Android] 所有 APP 已經更新為 Android 15 相容

上一篇有提到,Android 15 (SDK Level 35) 有一些變動。

其中一項就是 Edge to Edge 的畫面編排,改為強制啟用。

因為這個變動,原先畫面的部分,會數字顯示的地方往上提,變成主畫面看不見。

解決方案已經應用到所有發行的 App 上,包括旅行計算機,並且都已經全部推出到 Google Play 中。

有採用 Android 15 的朋友,可以更新到最新版本,就可以避掉這個問題。

計算機系列按鈕字體放大

本次更新另外一個包含的部分,是把計算機系列的數字按鈕字體放大,連同平板上的按鈕字體也一併修正,可以隨同放大。

在一些解析度比較高的手機上,放大之後的數字按鈕會有比較清楚的效果。

不過在更新推出之後,有收到回饋,覺得這次字體放太大,反而不利使用。

針對這個問題,已經著手處理中。

目前想法是,在一般設定的畫面中,增加一個設定,可以針對數字按鈕的大小進行處理。

使用者可以自己拖動想要的字體大小,確認之後,系統就會記起來,當次使用與下次載入就會是想要的字體大小。

這樣或許可以讓更多人找到適合自己的大小。對年紀較大的長者也會友善一些。

這個更新預定下個月可以推出,已經做一半,剩下的部分收尾完畢就可以開始測試。

小結

本次更新主要是針對 Android 15 的畫面問題,另外調整了按鈕字體大小。

希望旅行計算機以及相關 App ,能夠在旅行與匯率轉換路上繼續陪伴大家。

[Android] 所有計算機系列 App Android 版本 15 以上的顯示會有問題,修復中

在 Android 版本 15 (也就是 SDK 35) 的版本中,Google 強制所有 App 採用一個所謂 “Edge to Edge” 的顯示方式。

白話一點說,這個版本以後的 Android App,預設都會進行滿版排列。

原本這功能在 Android 15 之前是非強制,所以 App 可以自己選擇是否要這樣做,就是滿版排列,連 Status 那一列跟底下的按鈕列都納入顯示範圍。

Android 15 以後就變成強制這樣做,導致整個畫面的 Layout 會跑掉,變成計算數字在最上方,被功能列蓋掉,因而無法使用。

解決的方式已經有找到,正在做最後的實驗,確認完畢各版本都可以應用上之後,就會開始更新。

預計是這一兩天會處理更新的部分。

所以如果您是買新手機,已經用上 Android 15 版本的話,打開計算機系列 App,會看到顯示極度不正常,請再給我一些時間,很快就可以修復更新上去。

說到底還是沒跟上最新進度造成的,這部分我會深自檢討。要追的技術太多,能用的時間太少,還是得做出取捨才是。

結論: Android 15 以上顯示不正常的問題,這一兩天會解決。

感謝大家支持與體諒。

[Android] 計算機系列除以 0 問題已經修復

Android 計算機系列的 App ,除以 0 會導致當機的問題,已經全部修復。

受影響的版本

受影響的版本如下:
旅行計算機 – V1.8.5
匯率計算機 – V1.3.11
台灣匯率計算機 – V1.0.8

如果要確認自己使用的版本,可以利用選單 (menu) 的關於(about) 對話視窗,會有版本顯示。

解決方式

現在發生除以 0 的狀況,會直接擋掉。數值會維持為 0。

考慮過多種方式,還是用最簡單的方式來處理,避免再節外生枝。

修復的版本

修復的版本如下:
旅行計算機 – V1.8.6
匯率計算機 – V1.3.12
台灣匯率計算機 – V1.0.9

只要更新到這些版本,除以 0 的時候就不會再出現當機問題。

Travel Calculator 階段更新已經推進到 100%。所有的版本都可以更新到 V1.8.6 了。

其他的 App 都已經全面推出,所以只要有開啟自動更新的,應該都已經上到最新版本。

後續動作

Android 這邊會調整更新頻率,改為一年兩次,時間差不多就是暑假跟寒假,也就是七月跟一月。

不過已經不會做大幅度更動,秉持會動的工具就是好工具理念,有發現的小問題進行修復,外加使用 Google 最新的 SDK 進行編譯,然後推上去。

如果還有遇到類似這次更新 Google 端的問題,處理情況也會類似。就是快速找到問題,然後推出修復版本。

感謝還有在使用的大家支持。只要我還活著,這些 App 就會持續跟上 Google SDK 的更新腳步,讓匯率轉換這件事在旅行中不再是苦差事。

祝福大家出遊愉快,萬事順心。

[Android] 計算機系列新版本會遇到除以 0 的問題

現象

這一次更新,為了解決小數點的問題,引進了另外一組的解法。

這組解法可以用十進位來處理所有的計算,所以小數點就可以精準表達。

不過,先前除以 0 不會讓程式當掉的部分,就破功了。

所以計算機系列的 Android App ,只要按數字,然後按除號,再按 0,賓果,直接關掉。

預定做法

目前有找到發生問題的段落,已經修復。

就算要惡搞它,故意讓它除以 0,也不會當掉。只是顯示的部分還在想要怎麼處理。

因為呢,在數學上,除以 0 這件事會是無限大,或者它不是一個數字。

一般作法會顯示 NaN,意思是 “Not a Number”,不過那樣使用者可能會看不懂。現在是打算保留 0 的數值,不過這樣又會跟數學原意不同。

有一個可能的方式是顯示一條短訊息,跟使用者說除以 0 是不會有結果的,但這樣又要動到更多的程式碼,怕又會連動其他部分,這次更新可能就先不上。

預計上版時程

程式碼已經修改好了,不過最新版本上去,會再收集一兩天錯誤報告,看看有沒有其他的問題,一併解掉再推一版上去。

目前先暫定 2024/08/18 這一天會再推一版上去,所以在那之前,請大家高抬貴手,先不要亂用除以 0 玩旅行計算機,不然,它會直接當給你看,直接消失那種。

這真的是我的錯

所以要罵的就罵我。

該我自己揹的鍋,我不會躲的。

還請鞭小力一點就是。

[Android] 旅行計算機 V1.8.5 在 Android 14 上崩潰的問題已經修復

起因

因應 Google 最新的政策規定,所以需要更新一個版本。

程式其實沒有大幅度更動,只有拿最新版本的 Google Android 函式庫重新編譯一次,並且把版本號碼改掉。

But,人生最重要就是這個 But,Google 這次自己的 Library 出包了。

在一個不應該把我們的程式碼擋下來的地方,直接驅動一個意外發生,把正常程式碼給終結掉往下執行的可能。

這個問題只會在 Android 14 (Tiramisu) 以上的版本發生,Android 13 以下的版本不受影響。

解法

找到問題之後,就直接把該段程式碼槓掉。

如果要走正規解法,必須要把最低支援版本提升到 SDK Level 33,也就是 Android 13,這樣會有很多人的手機無法繼續使用,我自己的就是。

所以兩害相權取其輕,直接拿掉會產生這個問題的程式碼,對於整體功能不會產生影響。

新版本

修正過後的新版本已經上上去,版本名稱維持 V1.8.5 ,但是已經換成不會產生問題的版本。

所以如果有發生開起來直接當掉的狀況,請直接再更新一次,這問題就會解掉。

雖說 “又” 一次被 Google 所害,但還是自己 App 的問題,還是要跟大家說聲抱歉。(我怎麼說 “又” 呢)

小感言

其實以我自己的想法,一個穩定服務的 App,沒有必要進行大幅度更動,尤其是類似這種在外面旅遊需要持續使用的,一旦改出問題,都會是災難。

我向來服膺大同電鍋的信念,只要能煮飯,就是好電鍋。

不過我們偉大的 Google,好像不給我們開發者找點事情做就渾身不對勁,三不五時就會推出一些政策變動,然後我們支援的 API Level 也要跟著提升,不然就會擋掉之後的更新。

這樣就變成我們需要一段時間就更新一次,然後他們自家的軟體比較新的版本又沒有經過嚴格測試的話,就會出現類似這樣的問題。

使用者不會知道是誰的問題,就一律怪罪到 App 開發者身上。

我們就只能摸摸鼻子認了。

所以每一次的上版,其實那兩天都會睡不太好,生怕又會看到崩潰追蹤跳一堆錯誤出來,然後一查,又是 Google 的包。

感謝大家的體諒,新版本已經上去,預祝大家暑假旅遊愉快。

[iOS] 旅行計算機 1.1.1 版本已經上線解決 iPad 崩潰問題

經過幾天的數據觀察與測試,目前可以確定 V1.1.1 的 iOS 旅行計算機已經順利解決 iPad 上的崩潰問題。

如果有使用 iPad 的朋友持續遇到直接跳出的崩潰問題,請看一下版本號是否是 1.1,是的話請更新到 1.1.1,就可以解決這個狀況。

事情的起因上一篇文章有提到過了,是因為這一次 1.1 版本改動暗黑模式(Dark Mode)支援,在切換暗色系與亮色系之間,需要有一個地方把更動的邏輯搬進去處理,壞就壞在 iPad 上對於這個地方的處理跟 iPhone 上面不一樣,導致需要的一些元件會在還沒準備好的時候就拉上場,從而導致此次的情況。

再次為這個問題所造成的不便跟大家抱歉,往後有改動的時候會更加小心處理類似的問題。

祝大家端午節快樂!
南粽北粽都是粽,甜粽鹹粽一樣衝!

PS: 衝完就要開始減肥惹。

[iOS][緊急] 旅行計算機 V1.1 在 iPad 上的崩潰問題

旅行計算機 iOS 版本在日前迎來了 V1.1 的更新,針對此次更新會再另外撰寫一篇文章好好分享一下有哪些重點更新項目。

這一篇主要是要跟眾多遇到崩潰問題的 iPad 使用者說明一下目前的處理狀況以及可以怎麼閃掉這個問題。

根據後台的崩潰資料分析,這個崩潰的主因是在 iPad 為橫向設置時啟動 App 導致。因為這次更新有改動支援 Dark Mode 的部分,用了一個比較少碰到的事件來處理 Dark Mode 切換時的顏色變動,在那一段程式碼裡面,如果剛好是 iPad + 橫向的時候就會遇到這個問題。

目前預計這一週會送出一個 V1.1.1 版本給 Apple Review,直接解掉這問題,更新之後就不會再讓 App Crash (崩潰)了。

如果來得及,會順便把取消 TAX & TIP 循環顯示的選項做上去,之前有看到評論的回饋說要給一個選項可以控制是否要那樣顯示,所以這部分也會一併考量做上去。如果來不及,V1.1.1 就是專門上這個 iPad 問題的解決版,V1.1.2 再放那個選項進去。

在這邊跟 iPad 的使用者說聲抱歉,如果還有遇到 Crash 的狀況,請在直排的狀態下開啟 App 即可避免這個問題。開啟之後 App 有鎖住直排顯示,所以只要可以開得起來,就可以無阻礙的一路使用下去。

若有任何其他問題或者建議也歡迎來信: ericlin@tomosware.com

願平安與諸君同在!

匯率換算良伴,旅行計算機下載:https://itunes.apple.com/us/app/travelcalc/id981048257

用 adb 快速抓 Android App 畫面

從事 Android App 開發的獨立開發者,常常會需要使用螢幕截圖來進行說明或者一些其他的用途,特別是撰寫介紹文章以及 App 說明文的時候,有沒有圖片的支援,對於終端使用者的方便度來說是差很大的,俗謂「一圖解千言」不是沒有道理。例如日前寫的「如何使用旅行計算機 app」就使用了不少圖片來說明,一張張慢慢截圖的話大概要花整整一天。

三張截圖才能組成一張說明圖
類似這樣一張說明圖,需要三張畫面截圖

關鍵來了,實際操作過的話,就會知道要把圖片從手機上或者模擬器上面截下來然後送到自己的電腦上,是一件有點麻煩的事情。要先在手機或者模擬器上操作螢幕截圖,然後到相簿裡面把截圖透過 Mail 或者其他方式轉給自己的帳號,再到電腦上從那些 Mail 或者 Line 帳號將圖給存下來,進一步拿來運用。通常這樣做完一輪,就是拿到一張圖,面對一篇文章裡面說明動作動輒十來個的圖片需求,一篇文章寫完大概就已經累掛,沒啥力氣繼續寫 Code。

插個話,因為我的開發環境是在 Macbook Pro 上,所以環境都是以 macOS 為主,如果到 Windows 上,就需要把 Shell Script 改寫為 Bat 檔,或者啟用 Windows 10 的 Linux Subsystem 機制,才能夠 run。Linux 的話,應該就沒有這個困擾。adb 的指令參數應該都一樣,如果有不一樣的,再查一下版本差異改一下對應的指令就可以。需要的話可以參考一下 adb command

針對截圖問題,有沒有方便好用的方法可以快速處理呢?

有的,今天就分享一個簡單的 Shell Script ,可以快速的對目前螢幕上的圖進行擷取,然後一氣呵成完成把圖送到自己電腦桌面上的動作,免去上面那些繁瑣的步驟。

先來看 Shell Script: ( Bash 說明可以參考一下鳥哥的介紹 )

#!/bin/bash

filename=$1

TARGET="/sdcard/$filename"

adb shell screencap -p $TARGET
adb pull $TARGET
adb shell rm $TARGET

# 最後一步,把檔案 mv 到 Desktop 去
mv $filename ~/Desktop/

接著來說明一下。

一開始先收參數,也就是想要存檔的檔名。第一個參數就會被列為是最終要存起來的檔名。然後那個 TARGET=… 的那一行,是等一下截圖過程當中會需要用到的目錄路徑,這個路徑是在模擬器上或者真實手機上都可以使用的,下命令截圖完畢的圖檔,就會先放到這邊。

接著連續三行呼叫 adb 做事。

adb shell screencap ,就是最重要的,把圖截下來,目前畫面上是什麼圖,就原封不動把它抓下來,可以在做完需要的示範之後,停在那邊,然後下命令擷取。

adb pull ,則是把手機或者是模擬器上的檔案從裡面「拖」出來到電腦上,具體來說就是剛剛的截圖命令把圖片存起來到內部的 /sdcard 目錄下,pull 則是把這個檔案從裡面再拿出來到電腦上。

adb shell rm ,這一行就是把截完圖的檔案砍掉,因為已經拖到電腦上了,所以就可以直接砍掉,免得 /sdcard 底下越來越多檔案,吃掉空間。

最後一步,為了方便作業,直接把剛剛弄出來的圖片檔案,搬到 Desktop 去,這樣就可以直接在桌面看到剛剛截出來的圖片,進而進行編輯或者上傳出去完成文章編寫。

每次需要截圖,就是呼叫這個 Shell Script ,後面加上想要的檔名,就可以在桌面看見那個檔案出現,內容則是目前手機或者是模擬器的畫面,有沒有很方便?

生命,就該浪費在美好的事物上!快速截圖,可以幫您省下時間,多陪陪家人、多寫點程式,都比在那邊跟繁瑣的步驟搏鬥來得有趣多了。

分享這個快速截圖的小撇步,希望能幫大家節省更多時間。

Happy Coding !