APK 本地化

一個APK反編譯利器Apktool(android漢化)
2010-07-19 18:52
轉載自:http://blog.sina.com.cn/s/blog_5752764e0100kv34.html

APK 本地化

[http://www.andmoto.com/viewthread.php?tid=3873]
說起APK的漢化,目前大部分教程都是讓用Hex Workshop或者Android ResEdit來做。但是實際操作后,就會發現:
1、Hex Workshop操作繁瑣,經常出現搜不到想要修改的字符的情況;
2、Android ResEdit簡單用用可以,修改稍微復雜一點就會出現整條整條丟字符串的情況;并且新內容不能比原內容長——誰能保證我的本地化語言就一定比原來的短 呢?

現在好了,老外寫的《android-apktool》軟件,可以幫助我們把APK反編譯,生成程序的源代碼和圖片、XML配置、語言資源等文件。我們對 圖片和語言資源等文件修改后,可以再把它們編譯打包成APK,簽名后就是手機可以安裝的本地化/修正版APK了。

《android-apktool》軟件軟件可以訪問它的主頁http://code.google.com/p/android-apktool/下 載獲得,apktool-1.0.0.tar.bz2和apktool-install-windows-2.1_r01-1.zip兩個包都要下。下載 后解開,為了方便使用,按作者的推薦把得到的4個文件復制到C:\Windows文件夾里。

這個工具是Java寫的,需要你的電腦安裝了JRE或者JDK,并在系統環境變量Path里加入java.exe所在路徑。

以上準備工作做好后,就可以用它來反編譯APK了。這里我用動態壁紙的APK來做示范。

如果用過動態壁紙,你也許會發現在設置壁紙時,界面的顯示有點問題:“動態壁紙”,在手機上中文顯示為“當前壁紙”。這是“動態壁紙選擇 器”LiveWallpapersPicker.apk的翻譯錯誤造成的。

(假設LiveWallpapersPicker.apk放在C盤根目錄)

開始 > 運行,輸入cmd,回車。
  1. apktool d "C:\LiveWallpapersPicker.apk" "C:\LiveWallpapersPicker"
復制代碼
(命令行解釋:apktool d 要反編譯的文件 輸出文件夾)

這樣,LiveWallpapersPicker.apk就被反編譯了,輸出內容在C:\LiveWallpapersPicker文件夾里。

打開C:\LiveWallpapersPicker文件夾,我們發現里面有一些XML文件和一些文件夾。絕大部分情況下,語言和圖片資源都在res文件 夾里,我們這個例子當然不例外。

打開res文件夾,可以其中又是很多文件夾。(又是)絕大部分情況下,語言資源都放在values*文件夾里。比如說values放默認語言(英語居 多),values-de放德語,values-fr放法語等等。一般我們關心的是values-zh-rCN(簡體中文)和values-zh- rTW(繁體中文)。

打開values-zh-rCN文件夾,其中有個strings.xml。打開看看:
<?xml version="1.0" encoding="UTF-8"?>
<resources>
<string name="application_name">動態壁紙選擇器</string>
<string name="live_wallpaper_picker_title">當前壁紙</string>
<string name="live_wallpaper_preview_title">當前壁紙預覽</string>
<string name="configure_wallpaper">設置...</string>
<string name="wallpaper_instructions">設置壁紙</string>
<string name="live_wallpaper_empty">無當前壁紙。</string>
<string name="set_live_wallpaper">設置壁紙</string>
<string name="wallpaper_title_and_author">%1$s提供者:%2$s</string>
<string name="live_wallpaper_loading">正在載入當前壁紙…</string>
</resources>


很好,就是它了。把“當前壁紙”都改為“動態壁紙”,再檢查和修正標點——中文內容用中文標點(強烈呼吁大家注意標點問題,目前馬大哈太多了)后, 保存。

本例改這么多就夠了。其它復雜的APK建議把res文件夾里的內容都檢查下,至少你關心的語言文件夾里的內容都檢查下。

改完后,就可以重打包了。還是在cmd命令行里,輸入:
  1. apktool b "C:\LiveWallpapersPicker"
復制代碼
(命令行解釋:apktool b 要打包內容所在文件夾)
就可以了。生成的APK在C:\LiveWallpapersPicker\dist文件夾里,叫out.apk。

這個out.apk是沒有簽名的,所以不能直接裝到手機里。簽名工具和方法見http://www.hiapk.com/bbs/thread-21261-1-1.html, 這里不說了。

簽名后得到的APK,就是可以裝到手機里的了。


操練:去掉免費版軟件的廣告條

[http://bbs.ophone8.net/viewthread.php?tid=18082]

打開google code發現Apktool更新了,居然支持win了。。。。
那本文就是一篇介紹在windows環境下使用Apktool的筆記。
安裝

1.先裝JAVA環境,JDK/JRE都行,官網下載 裝過的就跳過吧

2.下載apktool.jar及相關文件,這里apktool-1.0.0.tar.bz2 apktool-install-windows-2.1_r01-1.zip


3.解壓apktool.jar到 C:\Windows 解壓apktool-install-windows.zip到任意文件夾(例如E盤根目錄)
4.Win+R 運行CMD,用cd命令轉到apktool-install-windows所在文件夾,輸入apktool看看。會列出一些幫助的話就成功了。 Apktool 命令

apktool d XXX.apk ABC 反編譯 XXX.apk到文件夾ABC
apktool b ABC 從文件夾ABC重建APK,輸出到ABC\dist\out.apk
然后我們反編譯一枚軟件玩玩…
AutoMemoryManager的免費版底部有一條廣告,去掉它吧。
把com.lim.android.automemman.apk放到同文件夾(我的就是E盤根目錄)
Win+R 運行CMD
E:<回車>
E:\>apktool d com.lim.android.automemman.apk AMM <回車>
I: Baksmaling…
I: Decoding resource table…
I: Decoding resources…
I: Copying assets and libs…
現在文件被decode到E:\AMM了,打開E:\AMM\res\layout\main.xml看,所有都可見了吧~
編輯第59行

<com.admob.android.ads.AdView android:id=”@id/ad” android:layout_width=”fill_parent” android:layout_height=”wrap_content” admobsdk:backgroundColor=”#ff000000″ admobsdk:textColor=”#ffffffff” admobsdk:keywords=”Android application” />

改為

<com.admob.android.ads.AdView android:id=”@id/ad” android:layout_width=”0.0dip” android:layout_height=”0.0dip” admobsdk:backgroundColor=”#ff000000″ admobsdk:textColor=”#ffffffff” admobsdk:keywords=”Android application” />

然后CMD輸入
E:\>apktool b AMM
I: Checking whether sources has changed…
I: Smaling…
I: Checking whether resources has changed…
I: Building resources…
I: Building apk file…
用Auto-sign簽名E:\AMM\dist\out.apk 安裝
這樣廣告就不見了

再看,嘿嘿~很帥吧…
這其實就是改了AndroidManifest.xml里的ADmob廣告ID罷了

轉載于:https://www.cnblogs.com/moonvan/archive/2011/04/15/2017039.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/275542.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/275542.shtml
英文地址,請注明出處:http://en.pswp.cn/news/275542.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Linux manjaro系統安裝后無法連接wifi,解決方案

2019獨角獸企業重金招聘Python工程師標準>>> 筆記本為聯想 thinkpad E480 首先通過命令lspci -k看一下原因是否為缺少wifi驅動&#xff0c;如下&#xff0c;如果沒有Kernel driver in use&#xff0c;說明缺少驅動。05:00.0 Network controller: Realtek Semiconduc…

檢測輸入路徑是否存在錯誤_為什么存在用戶輸入錯誤

檢測輸入路徑是否存在錯誤Errors are a fact of life when using almost any type of software. Forms are the worst though. Nothing is more frustrating than filling out a form and getting a robotic message from the computer telling you that you have failed, plea…

若川邀你進 源碼共讀 群~長期交流學習

大家好&#xff0c;我是若川。這是一個愉快的周六~估計還是有很多讀者不知道我。若川名字由來是取自&#xff1a;上善若水&#xff0c;海納百川。順便放兩篇文章。我讀源碼的經歷&#xff0c;跟各位讀者朋友分享下公眾號運營策略加我微信進 源碼共讀 群最近組織了近200人每周源…

2005 打開 2010 項目經驗總結

下面是網上的直接復制粘貼&#xff1a;網址為 http://hi.baidu.com/zealot886/blog/item/7364d4266a2a1555ac34dea6.html/cmtid/65ff140a660e02246159f3db 這里是我自己的總結 &#xff08; 1、用vs2010 將該解決方案的所有 項目都改為 net 2.0&#xff08;方法&#xff0c;右擊…

讀取linux的運行狀態,Linux下安裝使用sar工具來獲取系統運行狀態

sar 找出系統瓶頸的利器sar是System Activity Reporter(系統活動情況報告)的縮寫。sar工具將對系統當前的狀態進行取樣&#xff0c;然后通過計算數據和比例來表達系統的當前運行狀態。它的 特點是可以連續對系統取樣&#xff0c;獲得大量的取樣數據&#xff1b;取樣數據和分析的…

說說 Spring 的事務同步管理器

Spring 將 JDBC 的 Connection、Hibernate 的 Session 等訪問數據庫的連接或者會話對象統稱為資源&#xff0c;這些資源在同一時刻是不能多線程共享的 。 為了讓 DAO 或 Service 類可以實現單例模式&#xff0c; Spring 的事務同步管理類 org.springframework.transaction.supp…

錯過校招_我們在用戶測試中容易錯過的事情

錯過校招What makes a tool well designed? As a designer, I’ve thought about this question for a long time, and over the past few years I’ve developed a system that I now use with every new project I approach, from small startups to large companies like L…

這些 JS 中強大的操作符,總有幾個你沒聽說過

大家好&#xff0c;我是若川。今天推薦一篇相對簡單些的文章。大家應該都知道了我最近組織了源碼共讀活動&#xff0c; 有小伙伴表示讀源碼上癮&#xff0c;也很有收獲。工作0-5年都可以參與。感興趣可以加我微信 ruochuan12 私信 源碼 進群。1. 數值分割符 _2. 逗號運算符 ,3.…

Class 創建性能大比拼(反射,泛型反射,泛型創建,緩存Emit,非緩存Emit)

一說到反射&#xff0c;很多人都想到了性能&#xff0c;更有甚者直接說“慎用反射&#xff0c;遺患無窮”&#xff0c;“用反射&#xff0c;感覺怎么像是退步啊&#xff5e;”&#xff0c;看到這種言論&#xff0c;直接把反射妖魔化了&#xff0c;如果這種言論長此以往&#xf…

es6沖刺01

1、let/const 1)作用域&#xff1a;es5中有全局作用域、函數作用域。es6中新增了塊級作用域 2&#xff09;let定義的變量在所在塊級作用域外失效&#xff0c;嚴格模式下失效后直接報錯&#xff0c; 且不允許重復聲明同名變量 3)const用于聲明常量&#xff0c;聲明時必須賦值&am…

linux網卡固件名,修改CentOS7網卡名稱為傳統名稱eth0格式

使用CentOS7以前系統的小伙伴裝完CentOS7以后發現了一個問題&#xff0c;那就是網卡名改變為了“en016777736”&#xff0c;而不是以前的eth0的簡易模式了&#xff0c;如圖&#xff1a;以往的CentOS7以前的系統網卡命名雖然簡單方便&#xff0c;但也會帶來一些問題&#xff0c;…

Baymard Institute:基于UX的最佳實踐的光榮的,循證的工具

重點 (Top highlight)I realized I wanted to write this piece when I mentioned the Baymard Institute to a User Researcher with 10 years of experience and they had no idea what I was talking about. They aren’t alone! I’ve gotten plenty of raised eyebrows on…

Vue 3.2 發布了,那尤雨溪是怎么發布 Vue.js 的?

1. 前言大家好&#xff0c;我是若川。最近組織了源碼共讀活動&#xff0c;感興趣的可以加我微信 ruochuan12&#xff0c;長期交流學習。之前寫的《學習源碼整體架構系列》 包含jQuery、underscore、lodash、vuex、sentry、axios、redux、koa、vue-devtools、vuex4十篇源碼文章。…

wireshark使用教程 linux,Linux入門教程:ubuntu下安裝wireshark(以及配置非root),這個強大的工具可以捕...

Linux入門教程:ubuntu下安裝wireshark(以及配置非root),這個強大的工具可以捕Wireshark是世界上最流行的網絡分析工具。這個強大的工具可以捕捉網絡中的數據&#xff0c;并為用戶提供關于網絡和上層協議的各種信息。與很多其他網絡工具一樣&#xff0c;Wireshark也使用pcap net…

IronPython和C#執行速度對比

其實我自己對執行速度這個問題本來并沒有什么興趣&#xff0c;因為以前的經驗告訴我&#xff1a;除非是運算密集型的程序&#xff0c;否則腳本語言和編譯型語言使用起來速度沒有多大差別。但是我們公司有個人知道我的想法以后&#xff0c;天天在我耳邊嚷嚷腳本運行速度太慢&…

基于超級賬本Fabric的供應鏈跟蹤解決方案【開源】

2019獨角獸企業重金招聘Python工程師標準>>> 本項目為基于Hyperledger Fabric區塊鏈的供應鏈資產跟蹤解決方案&#xff0c;項目主要包括鏈碼和Web應用兩部分。Fabric鏈碼采用GOLANG開發&#xff0c;負責維護資產的狀態&#xff0c;后臺為采用Node.js開發的Web應用&a…

同理心案例及故事分享_神經形態,視覺可及性和同理心

同理心案例及故事分享“A good UX designer has empathy”.“優秀的UX設計人員具有同理心”。 This is something every UX designer has heard at some point in their career. Empathy helps us get into the mindset of the user and build solutions that solve real probl…

純CSS實現beautiful按鈕

大家好&#xff0c;我是若川。邀你進源碼共讀群學習交流。今天分享一篇好文。可收藏&#xff5e;近期工作中遇到一個需求——實現一些酷炫的按鈕&#xff0c;看到效果圖之后&#xff0c;按鈕確實漂亮&#xff0c;有彈跳、顏色漸變、掃光、霓虹燈&#xff0c;瞬間激起了我的好奇…

linux的內核有多小,Linux 內核有小bug?

今天讀著讀著Linux代碼&#xff0c;竟然無意中發現Linux 0.11內核有個小bug&#xff0c;呵呵&#xff0c;人非圣賢孰能無過。// 在目錄項數據塊中搜索匹配指定文件名的目錄項&#xff0c;首先讓de 指向數據塊&#xff0c;并在不超過目錄中目錄項數// 的條件下&#xff0c;循環執…

菜單窗口_菜單

菜單窗口The Hamburger Menu widget is on every other site nowadays. It has become synonymous with the web and, perhaps even more so, with web development. Have, for instance, a look at Dribbble or Codepen. There you’ll find a fair share of examples. They c…