我的应用程序有很多活动,也使用本机库.使用Eclipse生成的默认ProGuard配置ProGuard删除了很多东西--OnClick方法,静态成员,我的本机库使用的回调方法......是否有一种简单的方法来指示ProGuard不从我的包中删除任何东西?删除东西只能节省大约2.5%的应用程序大小,但会完全破坏我的应用程序.在ProGuard配置中逐类配置,测试和维护它将是一件痛苦的事.
这是关于安卓。情况:
C++ 库和 java 包装类以及用于处理库中 C++ 类的本机函数 (JNI)。当普通java代码需要C++对象时,它会创建相应的java包装对象,该对象通过本地函数创建C++对象并记住'long'变量中指向本地对象的指针。在接下来的所有操作中,包装器将此指针提供给本机函数等。
问题:
最后如何释放所有分配的C++对象?目前每个包装类都有'finalize'方法,它调用本地函数来释放C++对象,但Android不保证'finalize'的调用!另一方面,通常 C++ 库不知道 java 代码分配了多少和什么类型的 C++ 对象。
当我们的 java 应用程序终止时,剩余的分配内存会发生什么,当操作系统卸载库时,Android 会自动释放从本机库使用的整个堆吗?
我看到简单按钮的奇怪行为,当他们的文本分成几行时.我有它在更复杂的情况下,但即使在最简单的情况下它发生.有了这个布局:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_height="match_parent">
<Button android:layout_width="100dip" android:layout_height="70dip" android:text="111" />
<Button android:layout_width="100dip" android:layout_height="70dip" android:text="111 222 333" />
<Button android:layout_width="100dip" android:layout_height="70dip" android:text="111 222 333 444 555 666" />
<Button android:layout_width="100dip" android:layout_height="70dip" android:text="111" />
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
结果是: 
每个下一行文本按钮都会向下和向下移动.我希望他们排成一列.这是一个Android错误以及如何解决它?