顯示具有 Java 標籤的文章。 顯示所有文章
顯示具有 Java 標籤的文章。 顯示所有文章

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 為例

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 的運作原理:

2015年2月1日 星期日

Minecraft 1.8 安裝 Mod

不少人在 Minecraft 更新到 1.8 之後,發現安裝完 Forge 和 Liteloader 之後,會無法啟動遊戲,上網搜尋也找不到什麼解答。

關於這點可以很明確的給個答案,就是:你不是使用正版的 Launcher

這篇文章將講解為何會有這個問題發生,以及該如何安裝 Forge 和 Liteloader。
(當然用科科版的才會有這個問題...)


2014年12月5日 星期五

破解 Android 圖形鎖 (需 root)

Android 從很早開始,就能夠設定在鎖定畫面使用圖形鎖來進行安全性的保護,如下圖:


但其實這個 LockScreen 的圖形密碼(底下簡稱 pattern),是以簡單的方做儲存的。

因此,如果萬一不小心忘記密碼或者被朋友「銃康」,也是有機會可以找回來。

但是,這個還是需要兩個前提 :
  1.  手機的 USB 除錯模式必須是開啟的,因為要使用 adb 指令
  2.  手機必須有 root 權限,並允許 ADB Shell 取得最高權限

部分「玩家」有 root 手機的其實大部分都會把 USB 除錯模式打開,這要些人要特別注意萬一手機掉了,別人也是可以輕鬆的破解你的圖形鎖。

首先先來介紹 Android 是如何記錄這個圖形所的:

2013年10月2日 星期三

破解實例 - Floating Toucher

※此篇文章僅供學術交流,嚴禁轉載及引用或做其他用途※
※此處不提供任何付費軟體,如有興趣請支持正版※
※任何圖片以及版權接歸作者所有※
※請遵循所有 Goolge 的規範以及協議※ 


Floating Toucher 是一套在 Android 上有點仿 iPhone 虛擬鍵的軟體,浮動在螢幕最前端,點選後出現 Panel 可以放置快捷鍵或者快速設定,是一個蠻好用的小工具。

v2.0 之後提供三個 Panel 可以透過 swipe 動作切換,大大增加了實用性,不過這個功能是要付費的。







對程式進行 decompile 前,請先自行抓好底下工具:
  • JDK or JRE (建議 JDK)
  • JD-GUI
  • Apktool - 下載左邊 Downloads 裡的兩個檔案
    • apktool-install-windows-xxxx.tar.bz2 
    • apktoolxxxxx.tar.bz2
    • 接著解壓縮到同一個目錄下,應該會有三個檔案 (.jar , .exe , .bat)
  • dex2jar
  • Notepad++
  • Apkdownloader (Chrome 套件,直接從 Google Play 抓 apk)

2012年11月23日 星期五

Snoy Small App 開發入門

Sony Xperia 系列在 2012 年後的新機種陸續都加入了 Small App 的功能,
簡單來說就是 Sony 自己提供的一個簡單的 framework , 可以讓小視窗浮動
在畫面上( alwasy on top),感覺就像開啟一個新視窗。

比如說在逛 PTT 的時候有網站連結要連,可以用 Small WebView 來開啟:
這個功能其實蠻實用的,前幾個月換了 Xperia TX 後,就一直在關注這個東
西的發展。

自製 Small App :  Small MultiClip
PS : 上面連結文章中的下載位置是舊的囉,請參考新的下載位置 Small MultiClip
已於 Google Play 上架: MultiClipboard for SmallApp


2012年2月4日 星期六

Minecraft 如何將 SMP Mod Port 到 bukkit

相同文章也發表於巴哈姆特

一般在 Minecraft Forum 看到的 SMP Mod大多是 for Vanilla 的 Mod
(Vanilla : 官方 Server),如果要能執行在 bukkit 上面,
是需要進行轉換的(轉換在這裡就稱為 Port)

為何 Vanilla Server 的 Mod 無法直接用在 bukkit 上面?
因為 Vanilla Server是經過混淆器包裝過的程式,也就是裡面的
class 檔案,都呈現 aa.class  wz.class 這類的名稱。

而雖然 bukkit 裡面也有官方 Server 的部分,但這些 class 名字是有
解譯過的,也就是會呈現最原始的情況。

再者, bukkit 有改過這些 class 的原始碼,所以在方法和變數名稱都
和原始的有所差異,所以在  decompile 的時候需要使用修改過的檔案來進行
Mapping。

首先,先了解要 port 一個 SMP Mod 所必需的東西:

2010年8月9日 星期一

Awesome Drop 通訊方式

當你要把電腦上的檔案傳給 android 手機的時候,要怎麼做呢?

【Wifi】
  1. 電腦上傳檔案到某伺服器再讓 android 下載
  2. 透過FTP做檔案分享
【Bluetooth】
  1. 啟動 android 藍芽,透過物件推送將檔案送給 android

但是如果電腦沒有藍芽模組呢?如果不知道電腦的 IP 呢?


最近在 android 手機上出現的一個新的檔案傳輸方法,先在 android 手機上
下載好 awesomeDrop Client 端,並連上網路(透過 Wifi 或 3G),接著電腦連到
http://labs.dashwire.com/drop 會取得一組 PIN 碼,將這個 PIN 碼輸入到手機上
就可以開始等待檔案了。

2010年2月7日 星期日

如何製做可外掛的 Java 程式

有很多的 Java 程式都可以使用外掛來擴充功能,
最有名的應該就是 NetBeans 和 Eclipse 了,那麼
要怎麼樣自己製作可以外掛的 Java 程式呢?

其實很簡單,首先要規範這個外掛必須要有的項目。
比如說必須要有一個方法可以顯示設定視窗,有一個
方法可以用來呼叫這個外掛的某項功能,而主程式就要透過
這些開口去對外掛作存取。

有很熟悉的感覺吧? 沒錯, Java 的 interface 就可以拿來利用。

2010年1月25日 星期一

Java 呼叫 WinAPI

因為我自己是玩 Visual Basic 6.0出身的當初玩 VB 玩到
很無聊,是一直到無意間買到 WinAPI on VB6 的書,才
開始繼續對 VB 有興趣。一直到接觸了 Java 之後,還是對
Windows API 抱著很大的興趣,一直想要用 Java 呼叫 WinAPI
但是都不得其門而入。過了一年多,現在想想當初真的很好笑
Java 操作 WinAPI 根本破壞了 Java 本身最大的特點:跨平台。
現在用 Java 呼叫 WinAPI 已經是不得以的情況才會用了....
如果有人想要用 Java 呼叫 Windows API,就參考看看吧。

【本文開始】

先備知識:Java、C、WindowsAPI
使用軟體:Dev C++ (Windows)

當安裝好 JDK 和 Dev C++ 之後,要先作一件事情,請到 JDK 安裝
目錄(我的例子是安裝在C:\Program Files\Java\jdk1.6.0_17)
找到 include 資料夾,並把裡面的所有檔案,都複製到 Dev C++ 安
裝目錄下的 include 中。這樣子 Dev C++ 在編譯檔案的時候,才抓的
到需要的 Header File。

因為 Java 不能透過 JNI 直接呼叫 Windows API,必須得另外撰寫一個
DLL 去連結 WinAPI。所以這邊要利用 自己撰寫的 DLL 去連結 WinAPI。

首先編寫好 Java 部分的程式,假設這邊要呼叫 Windows API 的 ShowWindow
方法,讓輸入的 hWnd 視窗隱藏起來:
/* In File WinAPI.java */
public class WinAPI
{
static{System.loadLibrary("WinAPI");}
public static native int setWindowVisible(int hWnd,int state);
}

2009年10月11日 星期日

Export Excel

如同標題所言,要怎麼樣讓程式去 Export 一份 MS Office Excel 的檔案呢?

除了使用專門用來匯出 Excel 的套件之外,這邊提供幾種簡單的方法:

1. 不限定特殊格式,使用 .csv
這個就是以逗號隔開各欄位的檔案格式,夠簡單吧?

2.不限定特殊格式,使用 .xls
這個方法是把 xls 當作一個資料庫檔案來存取,只要該語言支援資料庫的讀寫
並且電腦中有 MS Excel 的 Driver,就可以寫入資料

3.可用特殊格式,使用 .xls
這個和第二種方式的不同在於,可以做字體變化,但缺點是,開啟檔案後
除了設定好了欄位之外,其他欄位不會出現格線(要自己開啟檢視格線)。