标签: dalvik

Dalvik 字节码中的“抛出”和“异常注释”

为什么字节码生成为

 .annotation system Ldalvik/annotation/Throws;
        value = {
            Ljava/io/FileNotFoundException;
        }
 .end annotation
Run Code Online (Sandbox Code Playgroud)

而不是.throws Ljava/io/FileNotFoundException

throws FileNotFoundException如果一个方法在java代码的标头中声明?

android dalvik jasmin java-bytecode-asm jvm-bytecode

5
推荐指数
1
解决办法
807
查看次数

如何使用 adb 工具调用 GC?

我想测试android应用程序的内存性能,并且我想自动获取内存信息。我使用“adb shell dumpsys meminfo ...”定期获取内存信息。现在,我想观察内存泄漏,如何执行 gc ?就像DDMS中的“导致GC”一样。谢谢!

debugging android garbage-collection dalvik

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

android platfrom,Dalvik字节码或本地机器码的过程中哪种代码?

我不太确定将哪种代码加载到 android 平台上的 linux 进程中。

如果android采用Dalvik,进程包含一个Dalvik VM和应用程序的代码,代码是Dalvik字节码的形式吗?如果是,代码是否与.apk文件中的classes.dex相同?

如果android采用Android Runtime(ART),由于classes.dex已经被翻译成原生机器码,所以我认为Linux进程中app的代码不会是Dalvik字节码,而是原生机器码。如果我的理解是正确的,那么Dalvik VM是否仍然包含在进程中?

java linux android dalvik android-runtime

5
推荐指数
1
解决办法
279
查看次数

ART:method() 的验证耗时 X 毫秒 - 需要几分钟

最近,当我尝试调试 android 测试仪器 APK 时,每次启动应用程序时,我都会在 logcat 中看到类似的内容

W/com.myapp: Verification of void com.myapp.test.hiptest.Actionwords.function0() took 158.211ms
W/com.myapp: Verification of void com.myapp.test.hiptest.Actionwords.function1() took 101.701ms
W/com.myapp: Verification of void com.myapp.test.hiptest.Actionwords.function2() took 110.852ms
W/com.myapp: Verification of void com.myapp.test.hiptest.Actionwords.function3() took 211.494ms
W/com.myapp: Verification of void com.myapp.test.hiptest.Actionwords.function4() took 102.497ms
W/com.myapp: Verification of void com.myapp.test.hiptest.Actionwords.function5() took 126.639ms
W/com.myapp: Verification of void com.myapp.test.hiptest.Actionwords.function6() took 138.077ms
W/com.myapp: Verification of void com.myapp.test.hiptest.Actionwords.function7() took 131.311ms
W/com.myapp: Verification of void com.myapp.test.hiptest.Actionwords.function8() took 253.859ms
W/com.myapp: Verification of void com.myapp.test.hiptest.Actionwords.function9() took 111.431ms
W/com.myapp: Verification of …
Run Code Online (Sandbox Code Playgroud)

android dalvik android-testing android-runtime

5
推荐指数
0
解决办法
687
查看次数

为什么同一个静态字段在 dalvik 中有两个不同的 id?

我正在编写自己的玩具 Dalvik VM,但我似乎无法弄清楚 dalvik 如何处理继承的静态字段。

考虑下面的java代码:

class Parent { static int parent_int = 10; }
class MyCode extends Parent {
    public static void main(String[] args){
        System.out.println(parent_int + 1);
    }
}
Run Code Online (Sandbox Code Playgroud)

当用 javac 和 java 编译并运行时,它会打印11到控制台,正如人们所期望的那样。然而,当它被编译成 dalvik 时,该parent_int值被转化为sgetget 的语句field@0000,而在is的字段 id<clinit>的方法中。Parentparent_intfield@0001

在我的 Dalvik VM 实现中,这成为一个问题,因为即使类 和已经field@0000初始化,也没有初始化。Parentfield@0001

Dalvik VM 如何处理这个问题?它如何知道它们是相关的并且应该被视为相同?为什么它们一开始就变成了两个不同的领域,而它们本可以是一个领域呢?

java android jvm dalvik

5
推荐指数
1
解决办法
200
查看次数

Dalvik到Java SE通信

我正在计划开发一个Android应用程序,需要后端服务器与应用程序的其他用户同步数据.我打算在unix服务器上运行的标准java中编写这个服务器.

我曾经直接在两个Android设备之间做过这个,在这种情况下,我只是序列化了两端需要发送的所有数据.

但是我怀疑Dalvik序列化的格式与Java SE的格式不兼容.是这样的吗?如果是的话,我的替代方案是什么?我想到的一件事是将原始xml发送到套接字上,但如果有更好的选择,我会很高兴听到它们.

谢谢.

java serialization android dalvik

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

转换为Dalvik格式失败,错误1 - 为什么?

我只添加了一个现有的完全工作项目,该文件 com/android/vending/billing/IMarketBillingService.aidl

(我没有添加任何其他内容(来自market_billing样本),因为我甚至没有尝试使用该服务)

它编译和构建完美,但当我尝试运行它时,我在控制台中收到以下内容:

java.lang.IllegalArgumentException: already added: Lcom/android/vending/billing/IMarketBillingService$Stub$Proxy;
Dx  at com.android.dx.dex.file.ClassDefsSection.add(ClassDefsSection.java:123)
Dx  at com.android.dx.dex.file.DexFile.add(DexFile.java:163)
Dx  at com.android.dx.command.dexer.Main.processClass(Main.java:486)
Dx  at com.android.dx.command.dexer.Main.processFileBytes(Main.java:455)
Dx  at com.android.dx.command.dexer.Main.access$400(Main.java:67)
Dx  at com.android.dx.command.dexer.Main$1.processFileBytes(Main.java:394)
Dx  at com.android.dx.cf.direct.ClassPathOpener.processArchive(ClassPathOpener.java:245)
Dx  at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:131)
Dx  at com.android.dx.cf.direct.ClassPathOpener.process(ClassPathOpener.java:109)
Dx  at com.android.dx.command.dexer.Main.processOne(Main.java:418)
Dx  at com.android.dx.command.dexer.Main.processAllFiles(Main.java:329)
Dx  at com.android.dx.command.dexer.Main.run(Main.java:206)
Dx  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
Dx  at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
Dx  at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
Dx  at java.lang.reflect.Method.invoke(Unknown Source)
Dx  at com.android.ide.eclipse.adt.internal.build.DexWrapper.run(DexWrapper.java:179)
Dx  at com.android.ide.eclipse.adt.internal.build.BuildHelper.executeDx(BuildHelper.java:745)
Dx  at com.android.ide.eclipse.adt.internal.build.builders.PostCompilerBuilder.build(PostCompilerBuilder.java:634)
Dx  at org.eclipse.core.internal.events.BuildManager$2.run(BuildManager.java:629)
Dx  at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
Dx  at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:172)
Dx  at …
Run Code Online (Sandbox Code Playgroud)

android dalvik aidl

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

Android - Phonegap - 转换为Dalvik格式失败,错误1

我安装了这个:

https://github.com/mwbrooks/cordova-plugin-menu

并已cordova 1.8.1安装.

我复制"libs/phonegap-1.0.0.jar"到了ANDROID_PROJECT/libs.

当我尝试在模拟器中运行应用程序时,我得到:

"Conversion to Dalvik format failed with error 1"
Run Code Online (Sandbox Code Playgroud)

我相信这与图书馆的冲突有关,但我不知道如何去除错误?

请帮忙.

android dalvik

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

java.lang.noclassdeffounderror:com.google.android.gms.R $ styleable没什么帮助我的

我有这样的活动类代码:

package com.pavel.exchanger;

import android.os.Bundle;
import android.app.Activity;
import android.support.v4.app.FragmentActivity;
import android.view.Menu;

import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.MapFragment;
import com.google.android.gms.maps.SupportMapFragment;
import com.google.android.gms.maps.model.BitmapDescriptorFactory;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.Marker;
import com.google.android.gms.maps.model.MarkerOptions;
import android.support.v4.app.Fragment;


public class SearchExchangerActivity extends FragmentActivity   {
    static final LatLng HAMBURG = new LatLng(53.558, 9.927);
    static final LatLng KIEL = new LatLng(53.551, 9.993);
    private GoogleMap map;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_search_exchanger);

        map = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map))
                .getMap();
            Marker hamburg = map.addMarker(new MarkerOptions().position(HAMBURG)
                .title("Hamburg"));
            Marker kiel = map.addMarker(new MarkerOptions()
                .position(KIEL)
                .title("Kiel") …
Run Code Online (Sandbox Code Playgroud)

java android dalvik

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

Dalvik与Zygote流程之间的关系是什么?

我只是想知道 :

  • 谁创造了dalvik_Vm

  • zygote过程中VM或相反的运行?

android dalvik

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