小编Jes*_*eke的帖子

将.java直接转换为.smali转换.可能?

我正在使用baksmali/smali工具.但有时我需要将.java类编译为.smali文件.所以我先用Eclipse编译它,然后将.APK反汇编为一组.smali文件.

是否可以使用一个工具直接将.java编译成.smali?

我自己找不到解决方案......

android smali

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

Android IllegalArgumentException:已添加

我创建了一个使用的android应用程序android-support-v4.jar.现在当我向这个项目添加一个android库时,我在构建时遇到了这个错误:

UNEXPECTED TOP-LEVEL EXCEPTION:
java.lang.IllegalArgumentException: already added: Landroid/support/v4/accessibilityservice/AccessibilityServiceInfoCompat$AccessibilityServiceInfoIcsImpl;
[2012-11-08 16:02:31 - ShoppingApp Android] Conversion to Dalvik format failed with error 1
Run Code Online (Sandbox Code Playgroud)

我试图添加的库是Facebook SDK,它也碰巧使用android-support-v4.jar.我发现只有这个错误的解决方案是从一个构建路径中删除库,但我不能这样做 - 当我选择这个jar时,所有选项都被禁用.

这是完整的错误跟踪:

UNEXPECTED TOP-LEVEL EXCEPTION:
java.lang.IllegalArgumentException: already added: Landroid/support/v4/accessibilityservice/AccessibilityServiceInfoCompat$AccessibilityServiceInfoIcsImpl;
    at com.android.dx.dex.file.ClassDefsSection.add(ClassDefsSection.java:123)
    at com.android.dx.dex.file.DexFile.add(DexFile.java:163)
    at com.android.dx.command.dexer.Main.processClass(Main.java:486)
    at com.android.dx.command.dexer.Main.processFileBytes(Main.java:455)
    at com.android.dx.command.dexer.Main.access$400(Main.java:67)
    at com.android.dx.command.dexer.Main$1.processFileBytes(Main.java:394)
    at com.android.dx.cf.direct.ClassPathOpener.processArchive(ClassPathOpener.java:245)
    at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:131)
    at com.android.dx.cf.direct.ClassPathOpener.process(ClassPathOpener.java:109)
    at com.android.dx.command.dexer.Main.processOne(Main.java:418)
    at com.android.dx.command.dexer.Main.processAllFiles(Main.java:329)
    at com.android.dx.command.dexer.Main.run(Main.java:206)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at com.android.ide.eclipse.adt.internal.build.DexWrapper.run(DexWrapper.java:180)
    at com.android.ide.eclipse.adt.internal.build.BuildHelper.executeDx(BuildHelper.java:703)
    at com.android.ide.eclipse.adt.internal.build.builders.PostCompilerBuilder.build(PostCompilerBuilder.java:577)
    at org.eclipse.core.internal.events.BuildManager$2.run(BuildManager.java:728)
    at …
Run Code Online (Sandbox Code Playgroud)

android facebook dalvik

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

如何在PendingIntent中发送有序广播?

我想在PendingIntent中发送有序广播.但我发现PendingIntent.getBroadcast(this, 0, intent, 0),我认为只能定期播放.那么,我该怎么办?

android android-pendingintent

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

smali 文件中 .prologue 的含义是什么?

我使用 apktool 分解了一个简单的 android 应用程序,它生成了一些 smali 代码。其他事情是可以理解的,但我没有理解 smali 代码中 .prologue 的含义。请帮助我

这里的其他变量是自我理解的链接调用和本地变量,但是这个 .prologue 是做什么的??

    # direct methods
    .method public constructor <init>()V
        .locals 0

        .prologue  # What does this do?
        .line 17
        invoke-direct {p0}, Landroid/app/Activity;-><init>()V

        return-void
    .end method
Run Code Online (Sandbox Code Playgroud)

android smali

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

使用Mockito模块化地连续方法调用

我正在尝试使用Mockito来模拟"Reader"类型类.想象一下数据流读取器,它有读取各种数据类型的方法,并在每次读取后推进内部指针.

public interface Reader {
    int readInt();
    short readShort();
}
Run Code Online (Sandbox Code Playgroud)

被测试的类从数据流中读取各种数据结构.例如,

public class Somethings {
    public List<Something> somethings;

    public Somethings(Reader reader) {
        somethings = new List<Something>();
        int count = reader.readInt();
        for (int i=0; i<count; i++) {
            somethings.add(readSomething(reader));
        }
    }

    private Something readSomething(Reader reader) {
        int a = reader.readInt();
        short b = reader.readShort();
        int c = reader.readInt();
        return new Something(a, b, c);
    }
}
Run Code Online (Sandbox Code Playgroud)

最后,我有我的测试:

public class SomethingsTest {
    @Test
    public void testSomethings() {
        Reader reader = Mockito.mock(Reader.class);

        readCount(reader, 2);
        readSomething(reader, …
Run Code Online (Sandbox Code Playgroud)

java mocking mockito

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

WPF,XNA,SlimDX ...建议使用类似CAD的桌面应用程序?(C#)

这就是我要做的事情:

要构建类似CAD的应用程序,从文件中加载点云(即表示3D对象的数千个3D点),允许用户操纵点(即通过移动点来改变形状),进行大量计算点上的点(例如,找到线和曲面之间的交点,检测点在曲面上方或下方等,测量点之间的距离,或点到曲面等),然后将修改后的点保存到文件中.

它还提供基本的类似CAD的UI功能,如放大/缩小,平移视图,旋转相机等.

速度是主要问题.

我不想使用自己的函数进行矩阵运算并定义自己的点/线/表面类,而是希望使用现有的库/ API来完成这项工作.

我知道WPF,XNA和SlimDX提供了进行3D几何计算的API,所有这些都最终调用了DirectX,但我只是对所有人都是新手.我在想:

  1. 哪一个(或其他一些建议)可以提供更好的速度表现.

  2. 我对DirectX 3D功能的理解是它主要处理游戏图形/屏幕输出,它还适用于数据级计算(即使用3D功能来操纵点数据,计算距离等,但不能输出它屏幕)?合适的,我的意思是如果我创建数以千计的DirectX顶点并对它们进行mainpulate,它会比使用我自己的数据类型和结构慢得多吗?如果我的理解是错误的,请纠正我.

  3. 如果我使用WPF,我是否也需要使用XNA?我有点混淆这两件事.

  4. 该应用程序应该在研究实验室的PC上运行,它没有强大的游戏显卡,所以它是否意味着XNA不是首选?

  5. 关于这些技术的建议应该用于这个应用吗?

谢谢!!

========更新

为了更清楚,应用程序将在3D中加载~108,000个点,并且每个点将与其他相邻点形成表面,因此大致涉及相同数量的3D表面(我不是同时生成它们).我将使用点和曲面进行大量的3D几何和矩阵计算,例如交点,插值,变换等,因此"计算"的速度是我主要关注的问题.大多数时候我只会将最终结果绘制到屏幕上,而绘图主要是线条和点,"绘图"的速度并不是一个大问题.所以它不是一个图形密集型应用程序,而是一个几何计算密集型应用程序.

在阅读答案和评论后,我想到了两个选择:

  1. 使用原始数据类型存储和计算数据,并在屏幕上绘制数据时将数据转换为WPF/XNA/SlimDX数据结构,或者

  2. 使用这些API的数据结构来存储,计算和绘制所有这些点.

哪一个更好?

c# directx wpf xna slimdx

4
推荐指数
1
解决办法
2135
查看次数

在Python中定义递归类型提示?

假设我有一个接受a Garthok,an Iterable[Garthok],an Iterable[Iterable[Garthok]]等的函数。

def narfle_the_garthoks(arg):
  if isinstance(arg, Iterable):
    for value in arg:
       narfle(arg)
  else:
    arg.narfle()
Run Code Online (Sandbox Code Playgroud)

有什么方法可以为arg指定类型提示,以指示它接受Iterables中Garthoks的任何级别?我怀疑不是,但以为我会检查我是否缺少某些东西。

解决方法是,我仅指定几个级别,然后以结尾Iterable[Any]

Union[Garthok,
    Iterable[Union[Garthok,
        Iterable[Union[Garthok, 
            Iterable[Union[Garthok, Iterable[Any]]]]]]]]
Run Code Online (Sandbox Code Playgroud)

type-hinting python-3.x

4
推荐指数
1
解决办法
527
查看次数

Android中的垃圾收集器正在运行,但在ddms的分配跟踪器中没有显示任何内容

在我的应用程序中,我注意不要在主渲染循环中进行堆分配,以防止垃圾收集器不得不做它的事情.

在对我的应用程序进行一系列更改后,我突然看到垃圾收集器每隔一两秒被调用一次,并且每次调用时释放大约400k的内存.

我回顾一下我所做的更改,并且我没有在渲染线程上发生任何明确的分配.所以我运行ddms并使用"Allocation Tracker"工具,但没有发生任何分配,除了与运行ddms相关的正常分配.当然,没有为400k字节显示足够的分配,显然每秒钟都会收集垃圾

enums android garbage-collection ddms

3
推荐指数
1
解决办法
1050
查看次数

Android Studio中的Smalidea插件

我在学校处理Android逆向工程。我想尝试这个插件:https : //github.com/JesusFreke/smali/wiki/smalidea

我使用A.studio和Win7的最新版本。我使用了有关Github(调试应用程序)的指南,直到第5点。我无法执行第6点,因为我在IDE中没有任何正在运行的配置。我尝试创建配置,但是随后收到错误消息:未指定模块。我不确定我是否理解得很好,是否应该从电话的工作室运行该应用程序?

android smali android-studio

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

将 else 语句复制到 if 语句

我正在尝试将 else 状态的代码复制到 if 语句。在这里我看到的if-eqz是 if 条件,但我不知道 else 条件在这里。有人可以帮我找到其他条件,以便我可以将其复制为 if 代码吗?

我还想知道else语句体的开始和结束位置在哪里

if-eqz v1, :cond_1

.line 103
:goto_1
return-object v0

.line 82
:cond_0
invoke-static {}, Landroid/os/Environment;->getExternalStorageDirectory()Ljava/io/File;

move-result-object v0

invoke-virtual {v0}, Ljava/io/File;->getAbsolutePath()Ljava/lang/String;

move-result-object v0

.line 83
new-instance v2, Ljava/lang/StringBuilder;

invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V

invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

move-result-object v0

const-string v2, "/Android/data/"

invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

move-result-object v0

sget-object v2, Lcom/lingren/game/MonoJavaHelper;->s_Application:Landroid/app/Application;

invoke-virtual {v2}, Landroid/app/Application;->getPackageName()Ljava/lang/String;

move-result-object v2

invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

move-result-object v0

const-string v2, "/files/Res/AssistObj/"

invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

move-result-object …
Run Code Online (Sandbox Code Playgroud)

reverse smali apktool

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