曹瑩瑩 張金勇
【摘 要】本文基于Windows系統(tǒng)環(huán)境,以置入“小美”和“小德”卡通形象為例,介紹了通過反編譯AndroidAPK實現(xiàn)ScratchJr角色個性化定制的全過程。
【關鍵詞】反編譯Android APK;ScratchJr角色個性化定制
【中圖分類號】TP311.5 ??????【文獻標識碼】A
【文章編號】2095-3089(2019)11-0263-01
【問題】
ScratchJr是Scratch的姊妹版,是MIT媒體實驗室的Scratch團隊專為5-7歲兒童設計的圖形化編程工具,可以讓孩子像搭積木一樣“堆疊”創(chuàng)造帶交互性的故事、動畫、游戲、音樂等,是小學低年級開展STEAM編程啟蒙教育的不二選擇。
筆者在進行《基于ScratchJr的小學低年級STEAM編程課程構(gòu)建研究》課題研究過程中,發(fā)現(xiàn)ScratchJr不允許導入外部圖像資源擴充角色,只能選擇資源庫的有限角色使用,無法實現(xiàn)角色的隨意個性化定制。雖然ScratchJr允許通過內(nèi)置的繪圖編輯器創(chuàng)造個性化角色,對于小學低年級學生來說,可以進行簡單個性化角色的創(chuàng)造,但仍然不能滿足低年級學生對于個性化角色的使用需求。
因此,筆者通過多次實踐,通過反編譯Android APK實現(xiàn)了外部圖像資源的導入,從而實現(xiàn)了ScratchJr角色的任意個性化定制,大大提升了教學過程中的場景搭建能力。
通過上述方式,筆者的課題實現(xiàn)了以青島崇德小學“小美”和“小德”卡通形象作為故事主人公,采用STEAM項目式案例教學,共有“預備”、“動畫”和“故事”和“游戲”四個階段性專題和10個案例項目,每個項目都以【創(chuàng)設情境】、【項目探究】、【極限挑戰(zhàn)】和【創(chuàng)意激發(fā)】四個環(huán)節(jié)進行,對人文、數(shù)學、科學、信息等多個領域核心素養(yǎng)教育進行創(chuàng)新設計和有機整合,形成了一門充滿校園文化承載的編程教育啟蒙課程。
【工具】
1.APK文件逆向工程工具軟件:apktool
https://ibotpeaches.github.io/Apktool
2.JDK內(nèi)置APK簽名工具:jarsigner
3.JOSN編輯器:
https://www.bejson.com/jsoneditoronline/
4.PNG圖片轉(zhuǎn)SVG工具:
https://www.bejson.com/convert/image_to_svg
5.圖像處理工具:Photoshop
【步驟】
1.下載ScratchJr APK文件。
ScratchJr目前最新版本是1.2.4,可以通過百度搜索或訪問ScratchJr官方網(wǎng)站(http://www.scratchjr.org)下載。
〖XC23.JPG;%22%22〗
2.訪問Oracle網(wǎng)站,下載安裝Java SDK,下一步我們會用到其內(nèi)置的APK文件簽名工具jarsigner。
3.使用apktool反編譯APK文件。
訪問github網(wǎng)站,下載 apktool.bat與apktool.jar 文件,并將它們放在同一目錄下。
通過CMD運行指令 apktool d scratchjr1.2.4.apk,將 apk 文件解包,默認解包到當前目錄下的同名文件夾下。
4.添加角色圖片資源。
筆者所在的青島崇德小學非常注重校園美德文化建設,設計打造的“小美”和“小德”卡通形象受到學生們的熱烈歡迎,成為推廣實施美德教育的有效載體。
〖XC24.JPG;%22%22〗
〖XC25.JPG;%22%22〗
通過反復研究發(fā)現(xiàn),ScratchJr在兒童美學方面下了很大功夫,內(nèi)置的角色資源在篩選預覽時使用PNG格式,最終舞臺呈現(xiàn)時使用SVG格式,做到了舞臺背景透明而且放大不失真的最佳效果。PNG和SVG角色圖片資源分別存放在assets\\HTML5目錄pnglibrary和svglibrary文件夾內(nèi),通過media.json文件進行資源數(shù)據(jù)規(guī)格描述。
(1)使用Photoshop軟件裁剪切割得到PNG格式的角色資源包,使用PNG圖片轉(zhuǎn)SVG工具得到SVG格式的角色資源包。將準備好的PNG角色圖片資源放置到pnglibrary文件夾下,SVG角色圖片資源放置到svglibrary文件夾下。
(2)通過在線JOSN編輯器修改并替換數(shù)據(jù)描述文件media.json。JSON(JavaScript Object Notation, JS 對象簡譜) 是一種輕量級的數(shù)據(jù)交換格式,采用完全獨立于編程語言的文本格式來存儲和表示數(shù)據(jù),層次結(jié)構(gòu)簡潔清晰,易于人閱讀和編寫,同時也易于機器解析和生成,并有效地提升網(wǎng)絡傳輸效率。
注意以下事項:角色資源圖片的寬、高尺寸務必精確,否則會導致在ScratchJr使用時比例失調(diào);不能破壞JSON數(shù)據(jù)文件的格式,可以仿照已有的角色資源描述格式逐個添加,否則會導致ScratchJr無法讀取角色資源;可以格式化JSON數(shù)據(jù)以方便進行編輯處理,但最終存儲要使用壓縮JSON格式,清除所有空白字符。
〖XC26.JPG;%29%28〗
5.通過CMD運行指令apktool b app -o other.apk(app 指需要打包的文件夾,-o other.apk 表示生產(chǎn)新文件),重新打包apk。
〖XC27.JPG;%29%28〗
6.剛剛打包生成的scratchjr1.2.5.apk無法進行正常安裝,必須進行重新簽名。
(1)利用JDK下的keytool工具生成簽名證書keystore。通過CMD運行指令:keytool -genkey -alias abc.keystore -keyalg RSA -validity 20000 -keystore abc.keystore,填寫相關信息,記好秘鑰口令。
(2)利用生成的簽名證書abc.keystore對scratchjr1.2.5.apk進行簽名。通過CMD運行指令:jarsigner -verbose -keystore abc.keystore -signedjar scratchjr1.2.5_cyy.apkscratchjr1.2.5.apk abc.keystore
7.在安卓平板或手機安裝scratchjr1.2.5_cyy.apk,此時角色庫里就有了“小美”和“小德”卡通形象,可以在舞臺中隨意添加使用了。到此大功告成!
【總結(jié)】
通過反編譯手段實現(xiàn)ScratchJr角色個性化定制,從而實現(xiàn)了教學場景搭建的多樣化需求,為STEAM編程啟蒙教育賦予了更多的可能性,對于滿足低年級學生的個性化學習需求具有重大意義。
最后,強調(diào)說明以下事項:(1)本文反編譯方法不僅可以實現(xiàn)ScratchJr中角色的個性化訂制,舞臺背景、聲音資源等都可以實現(xiàn)個性化訂制。(2)受限于蘋果iOS系統(tǒng)的封閉性,本文反編譯方法僅適用Android安卓系統(tǒng)。(3)本文反編譯方法僅限于編程教育教師本人用于課堂教學過程,工具和方法僅供學習交流,不可用作它途。(4)“小美”和“小德”卡通形象版權(quán)歸青島崇德小學所有,未經(jīng)允許不可私自用于其它商業(yè)用途。