2099年1月1日 星期四

Xposed 實用套件

※ Xposed framework 不一定支援所有機型以及 ROM
※ 安裝前請先確定自己的手機型號以及 ROM 是否支援

Xposed Official Site : http://repo.xposed.info/ (Xposed Installer , 建議下載 stable 版本)

官方網站中的 Browse modules 或者安裝完 Xposed Installer 也可以在裡面看到
有登錄的 modules (或稱 plugin)的 Repository , 當然有的 plugin 不會再上面顯
示,可以到 XDA 或者 Google 上面尋找。

XDA 整理的 plugin list : Xposed Modules Collections (推薦看這裡,原因底下會說明)


※ 安裝 Xposed framework
安裝完 Xposed framework ,給予 root 權限後,點選「框架」後,在裡面進行安裝。
安裝完後如果能夠重開成功,那應該就沒有問題了。(代表你的 ROM 可以使用)

※ 安裝 Xposed plugin
由於 Xposed 是針對 system 等級的 framework 進行修改,因此就會有 ROM 相容
性的問題,在 Repository可以看到幾乎大多數的 plugin 都有寫支援的 ROM 或者
不支援的 ROM,因此下載前要先看清楚,不然還是有可能無法開機的。
XDA 的那篇文章前方有使用 [] 標色,標出這個 plugin 適用於那些 ROM , 在尋找上
會輕鬆許多。

安裝完 plugin 之後,要到 Xposed Installer 中勾選啟用,並重新開機。


底下就是自己使用過覺得不錯的 Plugin以及簡單的介紹。

2018年6月3日 星期日

開發 Xposed Module in Android Studio

之前曾經寫過開發 Xposed Module 開發的 tutorial , 不過當時還在使用 Eclipse + ADT 套件,現在應該大部分的人都改用 Android Studio 了,所以稍微更新一下使用 Android Sutdio 開發 Xposed Module 的前置作業 (gradle-based):

XposedBridge 放在 jcenter, 所以記得 project build.gradle先加入 jcenter:
repositories {
    jcenter();
}


接著在 Module 的 build.gradle 加入 XposedBridge :

dependencies {
    provided 'de.robv.android.xposed:api:82'
    provided 'de.robv.android.xposed:api:82:sources'
}

如果不需要 source 可以不 import , 但建議一起放進來比較好開發,注意要用 provide 不是 compile 或 implementation,這樣在編譯的時候不會把 Code 編譯進 apk 中,而是使用手機上 Xposed Framwork 的 classes

至於目前 Xposed 到哪一個版本可以參考官方 github 的 release :
https://github.com/rovo89/XposedBridge/wiki/Using-the-Xposed-Framework-API

Latest API version badge

剩下的就和原本的相同,包含建立 xposed_init 和在 AndroidManifest.xml 加入資訊...等
可以參考之前寫的文章:
Xposed Module 開發教學 - 以 MoPTT 為例

2017年3月30日 星期四

FMSync - 自製 FileMaker 同步工具 (Not plugin)

目前市面上已經有許多 FileMaker Sync 的解決方案,但不外乎是透過 Plugin 或者將 Server 當作外部資料來源( External Data Source ),這些方法各有優缺點,比較有名的應該就是 FMEasySync:

FMEasySync 是將 Server Side當作外部資料來源進行同步,特點是也可以將 Clent 端作為 Server 使用,使用 FileMaker 內部通訊方式,有加密較安全。

支援 FileMaker Go , 但由於 Runtime solution 不支援 Perform Script On Server 和外部資料來源,因此無法用於 Runtime solution。

而其餘 plugin 類型的雖然可用於 Runtime solution 但大多要錢,而且重點是 FileMaker Go 不支援,剛好在目前的需求中,必須同時要能夠讓 Runtime 和 Go 使用,因此自行設計了一套 FileMaker Sync 的 Framework : FMSync (PS: 後來發現已經有同名的 plugin...)


2017年3月2日 星期四

RegExp 應用: lookahead , lookbehind

正規表示法一直都是我很推大家學習的東西,在字串處理上真的有很大很大的幫助以及好處,前幾天朋友工作上需要用到正規表示法處理字串,目的是:「在一個字串中找出連續數字 6~8 個」,這邊要注意的是,連續九個的話是不要的。

例如: 12345 XD Hi12345678ab666666cd987654321

要找出: 12345678 和 666666;但不可以找出 987654321 中的 98765432 或者 87654321

於是我第一個想到的東西就是 Lookahead 和 lookbehind。

先來看一下如果直接使用 \d{6,8} 會取出什麼:Visual Regex Tester
可以看到,直接使用 \d{6,8} 是會連後方的 987654321 取出來。

最後我給的的解法是:(?<!\d)\d{6,8}(?!\d),結果:Visual Regex Tester

重點就在前面的 (?<!\d) 和後面的 (?!\d) 這兩個表示法,他們分別代表的是
negative lookbehindnegative lookahead

2017年2月26日 星期日

Code 128-C 最佳化規則及轉碼

若還沒看過《由 Code 128 Font 建立 BarCode (含規則) 》建議先前往了解基本的 Code 128 規則。

此文章主要介紹當遇到一串條碼文字時,該如何進行長度最佳化以及特殊控制碼的應用。

同樣記得搭配此份表格服用。

2017年2月25日 星期六

由 Code 128 Font 建立 BarCode (含規則)

建立 barcode 其實不難,網路上有很多的 js-Lib 都可以產生各式各樣的 barcode,但由於這次要透過 FileMaker 製作 BarCode 過程相當繁複 (要透過 WebViewer + Windows Only Trick),因此想到是否可以透過 BarCode font 直接製作,於是稍微找了一下 barcode font , 也順便研究了一下關於 barcode 的建立規則。

Code 128 免費字體下載 (ttf):Fonts2U (GNU/GPL)

原本很開心的下載好字體檔,然後打了幾個字,卻發現手機的 Barcode Scanner 完全無法讀取,原來這是因為 barcode 是有固定格式的,因此使用 barcode font 製作 barcode 不能只打幾個字,格式必須要按照 Code 128 的規範才行。

先來了解 Code 128 的格式,共有 5 + 2(頭尾Quiet Zone) 個區域,但這裡可以先不用了解這麼系,簡單來說我們依序需要:  開始內容驗證碼結束 四個不同的區塊,產生出來的 barcode 必須符合這個格式才能被 Reader 讀取。

※ 底下會用到這個表格,請一起參考,提醒:後方的 Character 有部分僅是針對此字體。

2017年2月24日 星期五

FileMaker 實作 Password Field

FileMaker 聽說在 15 之前並沒有密碼欄可以使用,由於工作上使用 13 和 14 兩版,所以並沒辦法確認 15 版是否真的有這個功能,以及是否有任何其他問題。

這邊單就以 15 之前的版本來說, 若要再 15 前的版本使用密碼輸入欄位,必須要用模擬的方式處理。是的別懷疑,要用模擬的, FileMaker 並不像現在常見的程式語言提供這些東西,他比較類似於 Scratch , 很多功能可能都要自己硬刻出來。

我這邊有作出三種版本,可以參考自己需要哪種,文中都會有介紹:

其中前兩種方法不適用於 Web Direct
  1. Web Direct 不支援 onObjectKeyStroke
  2. Web Direct 取得 Get( ActiveSelectionStart ) 有問題,無法計算

2015年11月21日 星期六

XTextList brief introduction

中文版說明:XTextList 2.0 使用說明

XTextList is a Xposed Module. You have to install Xposed framework before using this module.
XTextList provides a text list dialog to let you insert sentences you've defined in this app when you are typing.

Features
  1. Ues floating window ( you can customize size , color , opacity and icon)
  2. Insert texts you've defined quickly
  3. Clipboard history record
  4. Two list types : Text , Alias
  5. Import / Export your text lists
  6. Use Runtime permission on Android 6.0
Support : Android 4.0.3 ~ Android 6.0

See gif demo :


XTextList 2.0 使用說明

English version : XTextList brief introduction

自製 Xposed Module , XTextList 更新到 2.0 ,決定正式來寫一個使用說明,文末是一些小小的心得,稍微抒發一下製作這個程式的心路歷程(?)。

XTextList 是一個 Xposed Module , 手機必須有安裝 Xposed framework 才能使用,主要功能是讓我們可以快速地輸入文字,可以讓大家快速的輸入事先設定好文字內容。

註:手機沒安裝 Xposed 也可以考慮使用我做的另外一個 App :  Floating Clipboard,可以參考重灌達人的介紹

XTextList 會在使用者輸入文字的時候,跳出一個浮動視窗,點選後會出現事先設定好的文字列表提供選擇,只要點選指定文字,就可以將文字內容輸入正在打字的地方。

特點介紹:
  1. 使用浮動視窗 ( 可自訂大小與顏色、透明度 )
  2. 可以快速輸入事先設定的文字
  3. 提供剪貼簿歷史紀錄功能
  4. 兩種清單模式:純文字、別名
  5. 匯出 / 匯入文字清單
  6. 採用 Android 6.0 的 Runtime permission 設定

支援系統: Android 4.0.3 ~ Android 6.0

直接看 gif 動畫效果展示:


2015年11月16日 星期一

Remix OS Mini 2G/16G 開箱心得 - 文長慎入

之前在 Kickstarter 看到 Remix OS 的時候就抱有很大的興趣,早鳥優惠 $40 真的算是很棒的價格( 1G/8G 版本 $20 ),經過一段時間的等待,終於收到囉!!

目前遇到最大的問題還是在輸入法吧,所以介紹完基本的之後,會先講輸入法的部分。

而重頭戲的多視窗和操作方式會放在後面用比較大的篇幅來介紹。


2015年11月12日 星期四

XTextList 重大更新 1.5-Alpha 1

不知道什麼是 XTextList ? 參考:自製 Xposed Module : XTextList

 花了一點時間將 XTextList 做了更新,主要是更新文字列表的顯示方式,同樣先參考 GIF 附圖:



  1. 新增「浮動視窗」功能,改變 TextList 出現方式,參考本文說明
  2. 新增「紀錄上一次使用列表」功能,啟用後可以記錄上次用的列表,下一次直接以該列表呈現
  3. 一些 UI調整 (但還是很難看 QQ)

2015年10月29日 星期四

自製 Xposed Module : XTextList

這個程式做好很久了,只是都一直都只有自己在使用,沒有發布主要是因為:
  1. 配色適合我自己的手機,沒有測試其他手機
  2. 沒有針對其他 ROM 做測試,因此不確定其他手機狀況
  3. 僅針對我常用的 Browser 做設定,沒有做 Chrome 調整

底下先來介紹一下這個 Module 的概念和使用方式:

程式名稱是 XTextList , 顧名思義就是文字列表 (TextList) ,
主要的想法是從自製程式: Floating Clipboard 的延伸,也就是
先建立好常用的文字,透過選擇複製的方式來快速輸入文字。
( 這裡有別人寫的介紹:重灌達人 )

XTextList 則是在文字輸入區「Tap & Long Press」呼叫出預先設定好的
文字清單,選擇後直接將文字輸入。

1.5 - Alpha 新增浮動視窗功能,請務必詳讀介紹


主要功能:
  1. 紀錄剪貼簿歷史紀錄 (可關閉) 
  2. 自訂多個文字清單分類
  3. 自訂文字內容
  4. 可使用「別名」(參考重灌達人的說明,相同的概念)

參考 GIF 圖片: XTextList Demo (約 1.9MB 可能要稍微等一下)

2015年6月24日 星期三

Xposed Module 技巧教學 - 偵測模組啟用

Part 1. Xposed Module 開發教學 - 以 MoPTT 為例
Part 2. Xposed Module 開發教學技巧篇 - 以 MoPTT 為例
Part 3. Xposed Module 技巧教學 - 偵測模組啟用

Xposed Module 在安裝之後,需要在 Installer 中勾選啟用並重新開機後才能運作。

有的 Module 在沒啟用的狀態下開啟 UI,會顯示訊息表示尚未啟用該 Module:



不過上網搜尋資料或者查看 XposedBridgeApi.jar 都看不到取得模組是否被啟
用的方法,而此篇就是介紹該如何偵測模組在 Installer 中的啟用狀態。

PS:這裡指的是我們自己開發的這個 Module

2015年6月23日 星期二

Xposed Module 開發教學技巧篇 - 以 MoPTT 為例

Part 1. Xposed Module 開發教學 - 以 MoPTT 為例
Part 2. Xposed Module 開發教學技巧篇 - 以 MoPTT 為例
Part 3. Xposed Module 技巧教學 - 偵測模組啟用 

上篇礙於篇幅,只說明如何停用 MoPTT 的文字過濾,而此篇則講解
如何透過 Xposed Module 修改 MoPTT 發文的簽名檔功能。

由於此功能和上篇相同都是針對 MoPTT 做修改,因此不另外建立一個
專案,使用同一個專案來進行開發。

[ Step 1 - 建立 UI ]

首先,由於可以自訂簽名檔,所以必須要有一個 UI,在此就建立一個
Activity 介面如下:



2015年6月22日 星期一

Xposed Module 開發教學 - 以 MoPTT 為例

Part 1. Xposed Module 開發教學 - 以 MoPTT 為例
Part 2. Xposed Module 開發教學技巧篇 - 以 MoPTT 為例
Part 3. Xposed Module 技巧教學 - 偵測模組啟用

此文章是針對 Xposed Module 的開發進行教學,關於 Xposed 本身的功能請參考網路文章,這邊就不再贅述。

PS : 底下將 Xposed Module 簡稱為 Mod (懶得打字打太多...)

開發環境: (反正就是要開發 Android App , 如何設定這邊就不再贅述)
  1. Java Development Kit ( JDK )
  2. Android Studio (或者 Eclipse + Android SDK Tool)
  3. Xposed Bridge API 的 jar 檔案 ( 在這裡下載 : XDA )

 建議工具: 反編譯用,這些都可以 Google 找到載點
  1. JD-GUI
  2. dex2jar
  3. apktool

XDA 的 XposedBridgeAPI 載點文章可能會更新,請根據手機的版本取得對應版
本的 XposedBridgeAPI.jar 檔案,如:XposedBridgeApi-54.jar 就是 54
(在 Xposed Installer 中可以看到你手機使用的版本)。不過還是建議更新到最新
版比較好。


在開始之前,首先簡單介紹一下 Xposed 的運作原理: