① Android APP破解技术有哪些
1)APKtool 2)dex2jar 3)jd-gui 4)签名工具
相关技术的基本要求
1)具有一定的阅读java代码的能力
2)稍微有点Android基础,越多越好
3)会用eclipse的一些Android调试的相关工具
4)了解一下smali的语法规范和字段的自定范围
5)有点应变能力思想转换能力、
6)虽然代码的修改是修改其smali文件(用到smali语法),虽然其语言是非常复杂的,但是我们能够变通就行了,但是要求了解一下smali的语法规范和字段的自定范围。
了解以上方法可以非常简单破解Android APK,破解后,应用里的页面布局、代码逻辑、结构算法等都能一目了然。所以为了避免被他人,尤其是竞争对手了解到这些,防破解和反编译尤为重要。我试过代码混淆,但是代码混淆只是对类名进行了变换,增加了破解者的阅读难度,并不能真正阻止反编译工程。下面是进行过代码混淆的APK代码结构,能看到只是对类名做了变换,变成a、b、c等这样的名称。但是仍然可以进行反编译。
后来又尝试使用360加固保对APK进行加固保护,发现原有的代码程序被隐藏起来了,没法再进行反编译工作。
所以作为移动应用开发者,适当了解一些破解和反编译工作有利于保护自己的应用安全。如果不防患于未然,一旦出现盗版情况,那么你的APP很可能从此被市场所抛弃。
② android app开发中常用到哪些开源框架
1.Framework 7
来自iDangero.us —自版本.0在一年前发布以来,Framework就一直是开发iOS应用程序的最佳选择之一。由于它提供对安卓的支持,如果你先从iOS入手,但随后构建具有类似iOS外观感觉的安卓版本,它也是个不错的选择。功能特性包括:Material Design用户界面、原生滚动、1:1页面动画、自定义DOM库以及XHR缓存和预装入。
3.jQuery Mobile
来自jQuery基金会— 这种成熟的轻量级框架基于jQuery,缺少本文中介绍的大多数程序包具有的许多高级功能,不过它仍拥有一群庞大的忠实用户。虽然它提供了语义标记、渐进式改进、主题化设计和PhoneGap/Cordova支持之类的功能,但是在类似原生系统的功能和性能或者高级用户界面方面乏善可陈。另一方面,它又很简单,这意味着“编写一次,到处运行”是常常可以实现的目标;对于还需要在Windows Phone和黑莓上运行的简单应用程序而言,它也是个不错的选择。
2.Ionic
来自Ionic — 这种流行的跨平台框架基于Sass CSS扩展语言,使用起来相当容易,不过它还能集成用于构建更高级应用程序的Angularjs。Ionic提供了一个丰富的库,包括针对移动设备优化的HTML、CSS和JS CSS组件、手势及工具,可与预定义的组件协同工作。命令行接口提供了仿真器、实时重装和日志等功能。还有一个基于Cordova的应用程序包装器。
4.Kendo UI
来自Telerik — 这种基于jQuery的HTML5/Java框架既有开源版,又有商业版。对企业用户友好的Kendo UI提供了种类丰富的用户界面窗口组件和插件。它最广为人知的地方就是拥有无数具有Material Design风格的预构建主题,另外还有一个主题构建器,可用于构建自定义主题。其他功能特性包括:Angular和Bootstrap UI集成以及性能优化。
6.Native
来自Telerik —顾名思义,Native专注于原生用户体验开发,但是它提供了跨安卓和iOS的跨平台代码共享支持。该软件使用现有的原生用户界面库,用户界面由Java、XML或视情况而定的Angular来描述。然而,使用起来,它不如Telerik更传统的跨平台Kendo UI框架来得容易。
5.Mobile Angular UI
来自Maurizio Casimirri —这个开源项目将AngularJS和经过修改的推特Bootstrap合并到了一个移动用户界面框架。据说它保留了Bootstrap 3的大部分语法,因而更容易实现从Web应用程序向移动应用程序的移植,同时增添了Bootstrap缺失的许多组件,比如切开关、覆盖、侧边栏、可滚动区域以及固定位置的导航条。库包括fastclick.js和overthrow.js。
7.Onsen UI
来自Asial Corp. — Onsen基于HTML和CSS而建,旨在与并非预先集成的PhoneGap和Cordova协同运行。它还可以与Angular和jQuery协同运行。顾名思义,该程序强调用户界面开发,并提供了一系列广泛的基于Web的用户界面组件和特性,比如表格的双列视图。(然而,仍然缺少Material Design。)这个文档完备的程序针对这样的jQuery Mobile用户:既需要易于使用,又想要更多的功能、更高的性能和更丰富的用户界面特性。总部位于东京的Asial正在开发一种拖放式GUI工具,该公司还开发和维护Monaca。
9.Sencha Touch
来自Sencha — Sencha的成熟的、面向企业的HTML5/Java框架既有开源版,又有商业版。Sencha建立于ExtJS的基础上,能够获得类似原生的性能。它为HTML5提供了可视化应用程序构建器,另外还提供了重复使用自定义组件的功能。原生包装器简化了分发到Google Play等应用程序商店的工作。
8.React Native
来自Facebook — React Native是一种开源框架,从Facebook的React Java框架派生而来,众所周知,Java框架取代了早些时候的HTML5基础。顾名思义,这个面向iOS的高端程序与其说是一种跨平台框架,还不如说是原生程序包装器,但是由于新增了对安卓的支持,它很适合我们的要求,因为你实际上只要用Java编写一次代码,就能移植到这两个平台。目前,只有OS X桌面得到全面支持,不过也有试验性的linux和Windows版本面向安卓开发。
10.Titanium
来自Appcelerator —不像那些比较偏向Web的框架,Titanium使用Java来构建原生代码,声称有望提升性能。这种基于Node.js的软件开发工具包(SDK)为iOS、安卓、Windows、黑莓和HTML5提供了5000多个API。Titanium更广为人知的地方是性能和丰富的功能特性,而不是易用性。软件是开源,不过只要你不发布你的应用程序,功能齐全的免费版可以免费享用,眼下你每月至少得支付39美元。
③ JD-GUI工具在反编译android和java的时候,反编译出的代码怎么导出啊难道只能挨个复制吗
把需要反编译的文件用JD-GUI打开点击->File->Save JAR soureces
选择后导出一个zip压缩包!里面就是所有的源代码了
④ 学习android开发,需要学习java的gui和数据库oracle数据库吗
不怎么需要。。复
Android开发中的制UI是一套全新的东西,有自己的MVC架构,和JAVA中的GUI(AWT,SWING)不同,但如果会JAVA的GUI开发的话还是不错的,因为两者之中的一些机制还是有些类似的,如事件监听器模型,其它关联不是很大,可以相互借鉴。
至于数据库,Android系统内置了SQLite数据库,支持的数据类型和函数和Oracle简直不可同日而语,毕竟,一个是专用于嵌入式的数据库,一个是企业级大型数据库,这个完全不用去学Oracle。SQLite数据库的使用很简单的,借助于Android中的数据库操作封闭类,可以很容易的设计出功能强大的数据库软件的。
⑤ android性能测试工具有哪些
如果要选取工具,最好能贴近使用场景,挑一个能满足切身需求的,真的能帮节省工作量,内提高工作效率。下面是容一些常用工具。
monkey
monkeyrunner
monkeytalk
Instrumentation
UIAutomator
Espresso
Calabash
Selendroid
Robotium
Appium
SeeTest
SilkMobile
Ranorex
⑥ 开发androidapp,你会用到哪些开源框架
1.Framework7来自iDangero.us—自版本1.0在一年前发布以来,Framework就一直是开发iOS应用程序的最佳选择之一。由于它提供对安卓的支持,如果你先从iOS入手,但随后构建具有类似iOS外观感觉的安卓版本,它也是个不错的选择。功能特性包括:MaterialDesign用户界面、原生滚动、1:1页面动画、自定义DOM库以及XHR缓存和预装入。3.jQueryMobile来自jQuery基金会—这种成熟的轻量级框架基于jQuery,缺少本文中介绍的大多数程序包具有的许多高级功能,不过它仍拥有一群庞大的忠实用户。虽然它提供了语义标记、渐进式改进、主题化设计和PhoneGap/Cordova支持之类的功能,但是在类似原生系统的功能和性能或者高级用户界面方面乏善可陈。另一方面,它又很简单,这意味着“编写一次,到处运行”是常常可以实现的目标;对于还需要在WindowsPhone和黑莓上运行的简单应用程序而言,它也是个不猜改错的选择。2.Ionic来自Ionic—这种流行的跨平台框架基于SassCSS扩展语言,使用起来相当容易,不过它还能集成用于构建更高级应用程序的AngularJS。Ionic提供了一个丰富的库,包括针对移动设备优化的HTML、CSS和JSCSS组件、手势及工具,可与预定义的组件协同工作。命令行接口提供了仿真器、实时重装和日志等功能。还有一个基于Cordova的应用程序包装器。4.KendoUI来自Telerik—这种基于jQuery的HTML5/Java框架既有开源版,又有商业版。对企业用户友好的KendoUI提供了种类丰富的用户界面窗口组件和插件。它最广为人知的地方就是拥有无数具有MaterialDesign风格的预构建主题,另外还有一个主题构建器,可用于构建自定义主题。其他功能特性包括:Angular和BootstrapUI集成以及性能优化。6.Native来自Telerik—顾名思义,Native专注于原生用户体验开发,但是它提供了跨安卓和iOS的跨平台代码共享支持。该软件使用现有的原生用户界面库,用户界面由Java、XML或视情况而定的Angular来描述。然而,使用起来,它不如Telerik更传统的跨平台KendoUI框架来得容易。5.MobileAngularUI来自MaurizioCasimirri—这个开穗兄判源项目将AngularJS和经过修改的推特Bootstrap合并到了一个移动用户界面框架。据说它保留了Bootstrap3的大部分语法,因而更容易实现从Web应用程序向移动应用程序的移植,同时增添了Bootstrap缺失的许多组件,比如切开关、覆盖、侧边栏、可滚动区域以及固定位置的导航条。库包括fastclick.js和overthrow.js。7.OnsenUI来自AsialCorp.—Onsen基于HTML和CSS而建,旨在与并非预先集成的PhoneGap和Cordova协同运行。它还可以与Angular和jQuery协同运行。顾名思义,该程序强调用户界面开发,并提供了一系列广泛的基于Web的用户界面组件和特性,比如表格的双列视图。(然而,仍然缺少MaterialDesign。)这个文档完备的程序针对这样的jQueryMobile用户:既需要易于使用,又想要更多的功能、更高的性能和更丰富的用户界面特性。总部位于东京的Asial正在开发一种拖放式GUI工具,该公司还开发和维护Monaca。9.SenchaTouch来自Sencha—Sencha的成熟的、面向企业的HTML5/Java框架既有开源版,又有商业版。Sencha建立于ExtJS的基础上,能够获得类似原生的性能。它为HTML5提供了可视化应用程序构建器,另外还提供了重复使用自定义组件的功能。原生包装器简化了分发到GooglePlay等应用程序商店的工作。8.ReactNative来自Facebook—ReactNative是一种开源框架,从Facebook的ReactJava框架派生而来,众所周知,Java框架取代了早些时候的HTML5基础。顾名思义,这个面向iOS的高端程序与其说是一种跨平台框架,还不如说是原生程序包装器,但是由于新增了对安卓的支持,它很适合我们的要求,因为你实际上尘早只要用Java编写一次代码,就能移植到这两个平台。目前,只有OSX桌面得到全面支持,不过也有试验性的Linux和Windows版本面向安卓开发。10.Titanium来自Appcelerator—不像那些比较偏向Web的框架,Titanium使用Java来构建原生代码,声称有望提升性能。这种基于Node.js的软件开发工具包(SDK)为iOS、安卓、Windows、黑莓和HTML5提供了5000多个API。Titanium更广为人知的地方是性能和丰富的功能特性,而不是易用性。软件是开源,不过只要你不发布你的应用程序,功能齐全的免费版可以免费享用,眼下你每月至少得支付39美元。
⑦ Android逆向工程相关工具集合
刷机包 sparse img -> ext4 img 线刷包里面找到system.img/vendor.img
$ file system.imgsystem.img: Android sparse image, version: 1.0, Total of 849920 4096-byte output blocks in 2454 input chunks.
使用Android源码编译得败态到out/host/linux-x86/bin/simg2img即可将Android的sparse image转为ext4的image
dat -> ext4 img system.new.dat.br转system.new.dat
brotli –decompress system.new.dat.br –output=system.new.dat
system.new.dat system.patch.dat system.transfer.list转ext4 img
https://github.com/xpirt/sdat2img
payload mp https://gist.github.com/ius/ odex/oat/vdex Android <=4.4 odex to dex
https://github.com/JesusFreke/smali/wiki/DeodexInstructions
https://bitbucket.org/JesusFreke/smali/downloads/
Android <=7 oat to dex
https://github.com/testwhat/SmaliEx/releases
https://github.com/testwhat/SmaliEx
https://github.com/JesusFreke/smali/wiki/DeodexInstructions
https://bitbucket.org/JesusFreke/smali/downloads/
Android 8 vdex to dex
https://github.com/anestisb/vdexExtractor
Android 9 vdex->cdex->dex
https://github.com/anestisb/vdexExtractor
https://github.com/anestisb/vdexExtractor/issues/23
tools/deodex/run.sh -h
dex dex转首型smali apktool工具者枯猜 针对 apk包括dex和资源
https://github.com/iBotPeaches/Apktool
https://ibotpeaches.github.io/Apktool/
baksmali、smali 针对dex
https://github.com/JesusFreke/smali
https://bitbucket.org/JesusFreke/smali/downloads/
dex转jar/java
googe enjarify工具dex转jar
https://github.com/google/enjarify
dex2jar
https://github.com/pxb1988/dex2jar
https://github.com/pxb1988/dex2jar/releases
结合jd-gui
https://github.com/java-decompiler/jd-gui
http://jd.benow.ca/
二合一工具
https://github.com/skylot/jadx
⑧ android app自动化测试工具有哪些
1、Monkey
Android SDK自带的测试工具,在测试过程中会向系统发送伪随机的用户事件流,如按键输入、触摸屏输入、手势输入等),实现对正在开发的应用程序进行压力测试,也有日志输出。
2、MonkeyRunner
也是Android SDK提供的测试工具。严格意义上来说MonkeyRunner其实是一个Api工具包,比Monkey强大,可以编写测试脚本来自定义数据、事件。
3、Instrumentation
早期Google提供的Android自动化测试工具类,虽然在那时候JUnit也可以对Android进行测试,但是Instrumentation允许你对应用程序做更为复杂的测试,甚至是框架层面的。通过Instrumentation你可以模拟按键按下、抬起、屏幕点击、滚动等事件。Instrumentation是通过将主程序和测试程序运行在同一个进程来实现这些功能,你可以把Instrumentation看成一个类似Activity或者Service并且不带界面的组件,在程序运行期间监控你的主程序。
5、Espresso
Google的开源自动化测试框架。相对于Robotium和UIAutomator,它的特点是规模更小、更简洁,API更加精确,编写测试代码简单,容易快速上手。
6、Robotium也是基于Instrumentation的测试框架,目前国内外用的比较多,资料比较多,社区也比较活跃。缺点是对测试人员来说要有一定的Java基础,了解Android基本组件,不能跨App。
⑨ JD-GUI工具在反编译android和java的时候,反编译出的代码怎么导出啊难道只能挨个复制吗
推荐一键反编译工具 ApkDec-Release-0.1
JD-GUI工具到纯袜处java方厅梁法 菜单栏-->扮裤运File-->Save Source(Save All Source)
⑩ 如何使用DroidDraw进行Android界面设计
1、DroidDraw是一个GUI可视化设计器,基于是基于Java Swing的Android界面设计器,用它来编辑android界面,非常直观、方便,为开发者节约很多时间。我们可以用它生成繁杂的layout文件(XML文件),设计完以后缓神庆可以导出xml文件,然后复制到我们的工程中使用。
使用方法很简单,首先下载该软件,运行扰握它,然后软件点击响应组件,通过拖拽来调整大小,生成文件保存成为XML,复制到您的Android工程中即可。
2、AnDroidDraw是一个与DroidDraw集成的Android应用程序,它允许你从DroidDraw应用程序下载你的GUIs,也允许你在一个Android设备上预览你的GUIs。
它其实是一个android应用的安装包apk文件,下载下来的文件AnDroidDraw.apk,然后要安装到模拟器上(这里一定要保证Android环境已搭建好,SDK和ADT配置好),步骤如下:
(1)在cmd下启动模拟器
启动模拟器的命令是命令行中输入emulator @自定义的模拟器名称
如果你也出先这样的问题,请先检查你的系统环境变量是否配置正确。
(2)使用 adb install AnDroidDraw.apk命令把它安装到你的 Android 设备上
(3)安装完此apk文件以后,打开模拟器,就可以看到模拟器上的该应用图标。
(4)安装一个端口转发规则: adb forward tcp:6100
(5)你的 Android 设备上运行 AnDroidDraw
(6)在电脑上运行 DroidDraw ,并且创建一个 GUI ,接下来从 DroidDraw 菜单中选择 "Project"->"Send GUI to Deviec",就是将设计出来的xml发送给模拟器正在运行的AnDroidDraw程序,如果发送成功会弹出“Upload succeeded”消息框。瞎誉
(7)Android 屏幕上看到你在DroidDraw创建的 GUI 的的xml