通过反编译AndroidAPK实现ScratchJr角色个性化定制

2019-06-12 05:10曹莹莹张金勇
课程教育研究·学法教法研究 2019年11期
关键词:小德小美编程

曹莹莹 张金勇

【摘 要】本文基于Windows系统环境,以置入“小美”和“小德”卡通形象为例,介绍了通过反编译AndroidAPK实现ScratchJr角色个性化定制的全过程。

【关键词】反编译Android APK;ScratchJr角色个性化定制

【中图分类号】TP311.5       【文献标识码】A

【文章编号】2095-3089(2019)11-0263-01

【问题】

ScratchJr是Scratch的姊妹版,是MIT媒体实验室的Scratch团队专为5-7岁儿童设计的图形化编程工具,可以让孩子像搭积木一样“堆叠”创造带交互性的故事、动画、游戏、音乐等,是小学低年级开展STEAM编程启蒙教育的不二选择。

笔者在进行《基于ScratchJr的小学低年级STEAM编程课程构建研究》课题研究过程中,发现ScratchJr不允许导入外部图像资源扩充角色,只能选择资源库的有限角色使用,无法实现角色的随意个性化定制。虽然ScratchJr允许通过内置的绘图编辑器创造个性化角色,对于小学低年级学生来说,可以进行简单个性化角色的创造,但仍然不能满足低年级学生对于个性化角色的使用需求。

因此,笔者通过多次实践,通过反编译Android APK实现了外部图像资源的导入,从而实现了ScratchJr角色的任意个性化定制,大大提升了教学过程中的场景搭建能力。

通过上述方式,笔者的课题实现了以青岛崇德小学“小美”和“小德”卡通形象作为故事主人公,采用STEAM项目式案例教学,共有“预备”、“动画”和“故事”和“游戏”四个阶段性专题和10个案例项目,每个项目都以【创设情境】、【项目探究】、【极限挑战】和【创意激发】四个环节进行,对人文、数学、科学、信息等多个领域核心素养教育进行创新设计和有机整合,形成了一门充满校园文化承载的编程教育启蒙课程。

【工具】

1.APK文件逆向工程工具软件:apktool

https://ibotpeaches.github.io/Apktool

2.JDK内置APK签名工具:jarsigner

3.JOSN编辑器:

https://www.bejson.com/jsoneditoronline/

4.PNG图片转SVG工具:

https://www.bejson.com/convert/image_to_svg

5.图像处理工具:Photoshop

【步骤】

1.下载ScratchJr APK文件。

ScratchJr目前最新版本是1.2.4,可以通过百度搜索或访问ScratchJr官方网站(http://www.scratchjr.org)下载。

〖XC23.JPG;%22%22〗

2.访问Oracle网站,下载安装Java SDK,下一步我们会用到其内置的APK文件签名工具jarsigner。

3.使用apktool反编译APK文件。

访问github网站,下载 apktool.bat与apktool.jar 文件,并将它们放在同一目录下。

通过CMD运行指令 apktool d scratchjr1.2.4.apk,将 apk 文件解包,默认解包到当前目录下的同名文件夹下。

4.添加角色图片资源。

笔者所在的青岛崇德小学非常注重校园美德文化建设,设计打造的“小美”和“小德”卡通形象受到学生们的热烈欢迎,成为推广实施美德教育的有效载体。

〖XC24.JPG;%22%22〗

〖XC25.JPG;%22%22〗

通过反复研究发现,ScratchJr在儿童美学方面下了很大功夫,内置的角色资源在筛选预览时使用PNG格式,最终舞台呈现时使用SVG格式,做到了舞台背景透明而且放大不失真的最佳效果。PNG和SVG角色图片资源分别存放在assets\\HTML5目录pnglibrary和svglibrary文件夹内,通过media.json文件进行资源数据规格描述。

(1)使用Photoshop软件裁剪切割得到PNG格式的角色资源包,使用PNG图片转SVG工具得到SVG格式的角色资源包。将准备好的PNG角色图片资源放置到pnglibrary文件夹下,SVG角色图片资源放置到svglibrary文件夹下。

(2)通过在线JOSN编辑器修改并替换数据描述文件media.json。JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式,采用完全独立于编程语言的文本格式来存储和表示数据,层次结构简洁清晰,易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。

注意以下事项:角色资源图片的宽、高尺寸务必精确,否则会导致在ScratchJr使用时比例失调;不能破坏JSON数据文件的格式,可以仿照已有的角色资源描述格式逐个添加,否则会导致ScratchJr无法读取角色资源;可以格式化JSON数据以方便进行编辑处理,但最终存储要使用压缩JSON格式,清除所有空白字符。

〖XC26.JPG;%29%28〗

5.通过CMD运行指令apktool b app -o other.apk(app 指需要打包的文件夹,-o other.apk 表示生产新文件),重新打包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,此時角色库里就有了“小美”和“小德”卡通形象,可以在舞台中随意添加使用了。到此大功告成!

【总结】

通过反编译手段实现ScratchJr角色个性化定制,从而实现了教学场景搭建的多样化需求,为STEAM编程启蒙教育赋予了更多的可能性,对于满足低年级学生的个性化学习需求具有重大意义。

最后,强调说明以下事项:(1)本文反编译方法不仅可以实现ScratchJr中角色的个性化订制,舞台背景、声音资源等都可以实现个性化订制。(2)受限于苹果iOS系统的封闭性,本文反编译方法仅适用Android安卓系统。(3)本文反编译方法仅限于编程教育教师本人用于课堂教学过程,工具和方法仅供学习交流,不可用作它途。(4)“小美”和“小德”卡通形象版权归青岛崇德小学所有,未经允许不可私自用于其它商业用途。

猜你喜欢
小德小美编程
褪色的玫瑰
编程,是一种态度
蜡烛跷跷板
编程小能手
纺织机上诞生的编程
纵火
鸡小德的职场趣事