小编gar*_*bay的帖子

在Android 5.0上动态加载DEX文件

在Android 5.0之前,我能够使用DexClassLoader和调用loadClass()方法动态加载DEX文件,但是使用最新的Android版本,我得到了一个ClassNotFoundException.

这是我在做的事情:

  1. 生成DEX文件.

    ../android-sdk/android-sdk-linux_86/build-tools/21.1.1/dx --dex --output=bin/output.dex  bin/output.jar
    
    Run Code Online (Sandbox Code Playgroud)
  2. 创建一个DexClassLoader.

    DexClassLoader cl = new DexClassLoader(
    dexFile.getAbsolutePath(),
    odexFile.getAbsolutePath(),
    null,
    mContext.getClassLoader());
    
    Run Code Online (Sandbox Code Playgroud)
  3. 呼叫 cl.loadClass("myMethod");

我知道ART使用dex2oat来生成一个由ART加载的ELF文件但是在步骤2中我生成了一个ODEX文件,因此我不需要在ART中运行以在运行时加载DEX文件,任何人都可以帮助我 ?

android classloader dex android-runtime dex2oat

15
推荐指数
1
解决办法
6947
查看次数

在Android中使用多个SpanObjects或多个TextViews会更好吗?

我有一个ListView,有一个TextView和每个TextView几个项目,每一个简要说明.为了应用不同的样式的项目和说明,我使用的倍数范围对象:ClickableSpan,ForegroundColorSpan,BackgroundColorSpan,AbsoluteSizeSpanStyleSpan.

平均ListView有10 TextView秒,每个TextView有10对项目/描述,每对使用大约6 SpanObject秒,所以总共约600 SpanObjectListView.当用户点击其中一个项目时,ListView清除并重新绘制再生成另一组600 SpanObject秒.

因此,我想知道TextView为每个项目和每个描述创建一个并通过XML格式化它而不是TextView使用span来设置s 是更好的主意,这样就会有大约200 TextView秒而且没有SpanObjects.

作为一个注释,我没有从这种方法开始,因为视图的层次结构树将变得更复杂并且TextView创建s的成本更高SpanObject但是现在我看到SpanObject我正在创建的s 的数量我不确定是什么更好.我也在考虑开始编写回收机制,但不确定它是否值得,或者这不应该是Android GC的问题.

performance android garbage-collection textview

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