在Android 5.0之前,我能够使用DexClassLoader和调用loadClass()
方法动态加载DEX文件,但是使用最新的Android版本,我得到了一个ClassNotFoundException
.
这是我在做的事情:
生成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)创建一个DexClassLoader.
DexClassLoader cl = new DexClassLoader(
dexFile.getAbsolutePath(),
odexFile.getAbsolutePath(),
null,
mContext.getClassLoader());
Run Code Online (Sandbox Code Playgroud)呼叫 cl.loadClass("myMethod");
我知道ART使用dex2oat来生成一个由ART加载的ELF文件但是在步骤2中我生成了一个ODEX文件,因此我不需要在ART中运行以在运行时加载DEX文件,任何人都可以帮助我 ?
我有一个ListView
,有一个TextView
和每个TextView
几个项目,每一个简要说明.为了应用不同的样式的项目和说明,我使用的倍数范围对象:ClickableSpan
,ForegroundColorSpan
,BackgroundColorSpan
,AbsoluteSizeSpan
和StyleSpan
.
平均ListView
有10 TextView
秒,每个TextView
有10对项目/描述,每对使用大约6 SpanObject
秒,所以总共约600 SpanObject
秒ListView
.当用户点击其中一个项目时,ListView
清除并重新绘制再生成另一组600 SpanObject
秒.
因此,我想知道TextView
为每个项目和每个描述创建一个并通过XML格式化它而不是TextView
使用span来设置s 是更好的主意,这样就会有大约200 TextView
秒而且没有SpanObject
s.
作为一个注释,我没有从这种方法开始,因为视图的层次结构树将变得更复杂并且TextView
创建s的成本更高SpanObject
但是现在我看到SpanObject
我正在创建的s 的数量我不确定是什么更好.我也在考虑开始编写回收机制,但不确定它是否值得,或者这不应该是Android GC的问题.