标签: dalvik

dalvik上的字节码注入

我在android平台上问了这个,但是没有收到回复.我已经提到了这个帖子,但找不到他所指的帖子(动态生成Dalvik字节码到运行的Dalvik/Android应用程序)

此外,还提出了此问题(http://code.google.com/p/android/issues/detail?id=6322)

所以,我的问题是,

  1. 这方面有什么进展吗?
  2. 是否可以将新的字节码注入正在加载的类中?
  3. 如果是这样,任何指针都相同?

干杯.Earlence

android bytecode code-injection dalvik

7
推荐指数
1
解决办法
2206
查看次数

Jit:将JitTable的大小从512调整到1024等等......这是什么?

现在开发一个Android应用程序几个星期,我才意识到我在catlog中收到了这样的消息:

Jit: Resizing JitTable from 512 to 1024 
(...)
Jit: Resizing JitTable from 1024 to 2048 
(...)
Jit: Resizing JitTable from 2048 to 4096
Run Code Online (Sandbox Code Playgroud)

这是什么意思 ?它是内存泄漏还是类似的东西?

我也在(...)区域得到了这个:

04-24 07:59:53.131: D/dalvikvm(874): GC_EXTERNAL_ALLOC freed 207K, 48% free 2980K/5639K, external 1448K/1458K, paused 66ms
04-24 07:59:57.591: D/dalvikvm(874): GC_CONCURRENT freed 162K, 46% free 3122K/5767K, external 1371K/1673K, paused 11ms+17ms
04-24 07:59:58.771: D/dalvikvm(874): GC_CONCURRENT freed 196K, 44% free 3445K/6087K, external 1145K/1657K, paused 10ms+6ms
04-24 08:00:01.411: D/dalvikvm(874): GC_CONCURRENT freed 274K, 39% free 4267K/6983K, external 1145K/1657K, paused 6ms+7ms
04-24 …
Run Code Online (Sandbox Code Playgroud)

android jit memory-leaks dalvik

7
推荐指数
1
解决办法
8729
查看次数

打包开关和稀疏开关dalvik操作码之间的区别

我想知道dalvik中打包交换机和稀疏交换机操作码之间的区别.如果你能提供例子,请.我不清楚谷歌提供的解释.

打包开关 稀疏开关

谢谢.

java android bytecode dalvik dex

7
推荐指数
1
解决办法
1608
查看次数

为什么Android上的每个应用程序都有单独的VM(Dalvik/ART)实例?

正如标题所述,
为什么Android上的每个App都有单独的VM(Dalvik/ART)实例?(需要它)

如果Android操作系统选择了单个虚拟机运行所有应用程序的模型,会发生什么?

android virtual-machine dalvik vm-implementation

7
推荐指数
2
解决办法
643
查看次数

Android开发中的自动化测试

我有一个JUnit测试的普通项目,它连接到我的Android项目中的类.每当我从Android项目提交代码时,我希望我的服务器在我的testproject中运行一些JUnit测试.

有这样做的最佳做法吗?到目前为止,我只是在JUnit测试和Android类被分成2个不同项目的一部分时才设法运行测试,因为JUnit在DVM(Dalvik虚拟机)上的模拟器中运行在JVM和Android上.

junit android automated-tests jvm dalvik

6
推荐指数
1
解决办法
2809
查看次数

Linux OS和Mobile OS之间的根本区别(android)

嗨,我试图找出移动设备操作系统与台式机相比有何不同之处.特别是内存管理,调度等.

我知道移动操作系统必须要做其他一些事情,比如电源管理,并担心更小的内存容量.

有没有人有任何好的资源来了解移动操作系统与其桌面版本的技术差异,也许是关于Android操作系统的?

android operating-system dalvik linux-kernel

6
推荐指数
2
解决办法
1万
查看次数

是否可以从Android上的Xalan调用Java扩展函数?

docx4j使用Xalan将docx转换为HTML,并且在很大程度上依赖于Xalan Java扩展来完成工作.

但Xalan扩展在Android上不适用于我(使用4.0.3).LogCat说:

05-14 15:38:02.840: I/dalvikvm(7249): DexOpt: illegal method access (call Lorg/apache/xalan/extensions/ExtensionHandler;.getClassForName (Ljava/lang/String;)Ljava/lang/Class; from Lorg/apache/xalan/extensions/ExtensionHandlerJavaPackage;)
05-14 15:38:02.840: I/dalvikvm(7249): Could not find method org.apache.xalan.extensions.ExtensionHandler.getClassForName, referenced from method org.apache.xalan.extensions.ExtensionHandlerJavaPackage.callFunction
05-14 15:38:02.840: W/dalvikvm(7249): VFY: unable to resolve static method 21489: Lorg/apache/xalan/extensions/ExtensionHandler;.getClassForName (Ljava/lang/String;)Ljava/lang/Class;
05-14 15:38:02.840: D/dalvikvm(7249): VFY: replacing opcode 0x71 at 0x0096
05-14 15:38:02.840: I/dalvikvm(7249): Could not find method org.apache.xalan.transformer.TransformerImpl.getDebug, referenced from method org.apache.xalan.extensions.ExtensionHandlerJavaPackage.callFunction
05-14 15:38:02.840: W/dalvikvm(7249): VFY: unable to resolve virtual method 23717: Lorg/apache/xalan/transformer/TransformerImpl;.getDebug ()Z
05-14 15:38:02.840: D/dalvikvm(7249): VFY: replacing opcode 0x74 at …
Run Code Online (Sandbox Code Playgroud)

java xslt android dalvik xalan

6
推荐指数
1
解决办法
1119
查看次数

Kotlin与Android上的ART 100%兼容吗?

ART是Android上的"新"Dalvik运行时版,自Android 5.0起就取代了它.我真的很喜欢在JVM v8上运行的Kotlin和JavaFX.我不确定Kotlin编译器生成或将在其达到v1.0发布状态时生成的字节码版本.

所以问题是:ART现在能够运行"Kotlin代码"并且能够在未来运行Kotlin代码,例如当Kotlin编译器要发出Java8字节码时吗?或者ART不依赖于Kotlin编译器发出的字节码?

android bytecode dalvik kotlin

6
推荐指数
1
解决办法
1317
查看次数

使用Dalvik用户代理的非用户请求正在跟随http请求

我在日志中注意到,每次我记录的某些用户发出请求时,都会出现第二个"影子"请求.第二个请求具有与"正常"请求相同的IP和目标,但减少了标头.每次,这都会打开一个新会话.

我观察到这种情况与表格相同.

有什么理由导致这个?

请求标题:

host=www.example.com
connection=keep-alive
accept=text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Upgrade-Insecure-Requests=1
user-agent=Mozilla/5.0 (Linux; Android 5.1.1; Lenovo YT3-X50F Build/LMY47V) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.83 Safari/537.36
referer=https://www.example.com/auth/xyz
accept-encoding=gzip, deflate, sdch
accept-language=en-GB,en-US;q=0.8,en;q=0.6
cookie=JSESSIONID=XXXXX; _gat=1; _ga=GAXXXXXX

影子请求标头:

Headers=user-agent=Dalvik/2.1.0 (Linux; U; Android 5.1.1; Lenovo YT3-X50F Build/LMY47V)
host=www.example.com
connection=Keep-Alive
accept-encoding=gzip

android http dalvik

6
推荐指数
0
解决办法
725
查看次数

Dalvik Verifier中的参考与精确参考

我正在Dalvik字节码上编写工具,该代码对各种方法调用条目执行一些日志记录。具体来说,在各种方法调用站点,我将插入一组指令,这些指令收集参数,将其放入Object[]数组中,然后将其传递给日志记录函数。

这一切都很好,很好,我已经实现并克服了大多数应用程序的所有麻烦。但是我遇到了一个特别难以理解的Dalvik验证程序错误:

java.lang.VerifyError: Verifier rejected class io.a.a.g: void io.a.a.g.r() 
failed to verify: void io.a.a.g.r(): [0x570] register v5 has type Reference: 
java.lang.Object but expected Precise Reference: java.lang.String
Run Code Online (Sandbox Code Playgroud)

我查看了仪器生成的代码,我所做的只是将寄存器v5放入对象数组中。

我在这里有几个问题:

  • 什么是精确参考,为什么它与参考不兼容?
  • 这里的偏移量是什么意思?[0x570]指向字节码指令的中间,因此不会清楚地映射到任何指令:那里的指令不涉及v5
  • 我将如何调试呢?理想情况下,我想知道验证者认为应该发生的情况并加以解决。

编辑:

这是我正在谈论的方法的字节码的转储。https://gist.github.com/kmicinski/c8382f0521b19643bb24379d91c47d36正如你所看到的,0x570不是指令的开始,(据我可以告诉)没有任何地方有一个字符串,其中R5冲突它应该是一个对象。

android bytecode dalvik bytecode-manipulation smali

6
推荐指数
1
解决办法
1582
查看次数