标签: dalvik

"instanceof"在Android Java代码中的影响

instanceof关键字是否会对Android平台产生相对较重的影响(更具体地说是运行Dalvik VM的手机?

performance android garbage-collection instanceof dalvik

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

无法让Joda-time在Android上运行.

我正在学习Android并且需要日期/时间.我被同事推荐为Joda-time,这似乎正是我需要取得的进展.不幸的是,我无法让它工作.

我正在使用intellij,这是Android 2.2.

我采取的步骤:

  1. 网站下载Joda-time jar .
  2. Intellij>文件>项目结构>附加类
  3. 建立

然后我得到这个错误:

警告:忽略没有关联的EnclosingMethod属性的匿名内部类的InnerClasses属性.(这个类可能是由一个破碎的编译器产生的.)

我不知道从哪里开始.帮助将不胜感激!

time android dalvik jodatime

9
推荐指数
1
解决办法
3099
查看次数

有没有解决Android错误"无法解析虚拟方法java/beans/PropertyDescriptor"?

我试图在Android应用程序中使用第三方jar文件.我已经能够使用jar文件中的一些类了.但是,其中一个类引用了dalvik vm似乎不支持的某些Java类.这些是我在LogCat中看到的一些错误:

Unable to find class referenced in signature java/beans/PropertyDescriptor.
Unable to resolve virtual method java/beans/PropertyDescriptor.getName().
Unable to resolve virtual method java/beans/PropertyDescriptor.getReadMethod().
Unable to resolve static method java/beans/Introspector.getBeanInfo().
Unable to resolve exception class java/beans/IntrospectionException.
Run Code Online (Sandbox Code Playgroud)

似乎dalvik不支持与内省和反射相关的Java类.我想找出两件事.这是否计划在不久的将来在达尔维克支持这一点?其次,是否有人建议可以解决这个问题?

android dalvik propertydescriptor

9
推荐指数
1
解决办法
8983
查看次数

Eclipse:转换为Dalvik格式失败,错误1

当我在Eclipse中创建一个新项目时,会立即发生这种情况.

我在项目中只有1个jar文件,我试图将其删除,然后重复添加几次,并在此之后清理项目.

我更新了ProGuard(我认为),下载了新版本,并将lib文件夹替换为此处的线程说.

我的default.properties文件如下所示:

# This file is automatically generated by Android Tools.
# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
#
# This file must be checked in Version Control Systems.
#
# To customize properties used by the Ant build system use,
# "build.properties", and override values to adapt the script to your
# project structure.

# Project target.
target=android-8
Run Code Online (Sandbox Code Playgroud)

因此无法评论ProGuard的任何内容,这也是另一个线程中提到的.我觉得我已经尝试了一切,但仍然存在这个错误.如果我去,我注意到的一件事: window -> preferences -> android -> build.并取消选中"当外部jar包含本机库时强制错误".然后我得到:"无法解决R" …

eclipse android dalvik

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

从代理对象访问字段

在为Android开发ORM框架时,我遇到了一个有趣的问题.我正在使用一个名为dexmaker的库进行字节码操作,这使我能够为持久对象创建代理以实现延迟加载.

代理实例具有关联InvocationHandler,使得当在代理上调用方法时,在该方法上调用该invoke方法InvocationHandler,然后在假定它被延迟加载的情况下调用代理对象的相应方法.没有什么太令人惊讶的 - 它就像Java的Proxy类,但允许我代理实际的类而不是接口(参见dexmaker的ProxyBuilder).

成为问题的部分是我也使用反射从持久对象中检索字段值 - 现在我已经引入了延迟加载 - 代理.这是我目前正在做的事情:

for (Field f : getPersistentFields(model.getClass()) {
    ...
    Object val = f.get(model); // model is either a persistent object or a proxy for one
    mapField(f, val, map);
}
Run Code Online (Sandbox Code Playgroud)

这当然适用于常规模型实例,但对于代理实例,f.get(model)不检索代理对象的字段值.相反,它返回类的构造函数中指定的默认值.代理的字段上的访问权限显然没有被截获.

我的问题是:有什么方法可以拦截通过反射对代理的成员变量进行访问?如果没有,我如何以"类似反射"的方式检索代理字段的值?

我正在考虑的一种可能的解决方法是使用反射检索然后调用字段的getter方法,但我想知道是否有更直接的解决方案.这种解决方法,如果实际上有效,则需要对象为所有持久字段设置一个getter方法 - 从OO设计的角度来看通常应该遵循这一要求,但也会迫使更多的工作进入框架的用户.

我对任何想法持开放态度.

java reflection proxy android dalvik

9
推荐指数
1
解决办法
2148
查看次数

android应用程序的入口点

当我们开发Android应用程序时,我们总是从onCreate()主要活动的方法开始.很明显,在调用之前应该进行一些初始化onCreate().我的问题是:mainAndroid应用程序的入口点(或方法)是什么?Dalvik VM在一开始就调用了什么(即,当它完成自己的初始化,并且即将控制转移到应用程序时)?我在哪里可以找到这个代码main

mobile android dalvik

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

自facebook SDK以来,转换为Dalvik格式失败,错误1

我对此感到非常沮丧.每个imte我尝试导出我的项目我得到错误:转换为Dalvik格式失败,错误1

我尝试了很多东西.我得到了最新的日食.改变了我的proguard文件.

只有在我将facebook 3.5.2 SDK添加到我的项目时才会出现此错误.我们在我们的库中有相同的android-support-v4.jar.我在我的应用程序中删除了一个并将其保存在facebook SDK中,但我仍然记错了.任何人都可以帮助我真的很令人沮丧......

提前致谢..

java android dalvik

9
推荐指数
1
解决办法
7448
查看次数

Android:为什么本机代码比Java代码快得多

在下面的SO问题:https: //stackoverflow.com/questions/2067955/fast-bitmap-blur-for-android-sdk @zeh声称一个java模糊算法的端口到C运行速度快40倍.

鉴于大部分代码仅包含计算,并且所有分配仅在实际算法数字运算之前"一次"完成 - 任何人都可以解释为什么此代码运行速度快40倍?Dalvik JIT不应该翻译字节码并大大减少与本机编译代码速度的差距吗?

注意:我自己没有确认此算法的x40性能增益,但我遇到的所有严格的图像处理算法都使用NDK - 因此这支持NDK代码运行速度更快的概念.

performance android jit dalvik android-ndk

9
推荐指数
1
解决办法
4319
查看次数

Android中不安全的类?

Android Dalvik标准库是否具有类似于Java SE中未记录的类sun.misc.Unsafe的类,它允许直接访问内存.

java android dalvik

8
推荐指数
1
解决办法
3171
查看次数

malloc和dlmalloc之间的区别

为了在dalvik堆中分配内存区域,应用程序使用dlmalloc而不是普通的malloc,为什么使用dlmalloc,以及它与malloc的区别.(据我所知,为了在创建dalvik VM时分配dalvik堆,使用了malloc.)

android memory-management dalvik

8
推荐指数
1
解决办法
5547
查看次数