Articles of java

Android NDK:如何重新启动活动后清理本地代码?

所有, 我知道,默认情况下,当屏幕方向改变,或者滑入或滑出键盘时,活动将被终止并重新启动。 (请参阅Activity在Android上重新启动 )。 我的问题是,从本地代码的angular度来处理这个问题的正确方法是什么? 例如,如果我有一个静态块加载本机库,我的应用程序重新启动,我如何确保在本地的任何内存得到妥善处理? 问题是 当我们旋转设备时,它看起来像一个单独的线程池被创build,旧的永远不会被删除。 这意味着每次有人打开设备,我们就有更多的线程闲置并占用内存 我如何确保这不会发生? 我从JNIExample页面的底部看到一些注释: 未解决的问题和错误即使这个例子是function完整的,还有一些尚未解决的问题仍然存在,到目前为止我还没有弄清楚。 开始活动时出现问题,然后按“后退”button将其隐藏,然后重新开始。 根据我的经验,在这种重新开始的活动中调用本地函数将会失败壮观。 callVoid()简单地与分段错误崩溃,而调用getNewData()和getDataString()会导致JVM中止一个错误,因为它不再满意全局caching对象引用。 即使它们受到NewGlobalRef()的保护,并且活动在原始JVM中运行(活动重新启动并不意味着JVM本身已重新启动),似乎活动重新启动以某种方式使我们caching的对象引用无效。 我没有一个很好的解释为什么会发生,所以如果你有任何想法,请让我知道。 这个解决了吗?

Android:本机进程引发ReferenceTable一段时间后溢出(android-ndk)

使用ndk我编译了一个用C编写的代码。该程序是一个ecm格式的文件转换,这里是本地代码: link 。 我之所以selectJNI来进行优化,是因为程序需要大量的CPU处理。 要转换的文件可能非常大,介于200MB和700MB之间。 一切正常,但是当试图转换大于600Mb的文件时,在转换过程结束时,应用程序停止并显示以下错误消息: 11-13 20:24:36.775: WARN/dalvikvm(1468): ReferenceTable overflow (max=512) 11-13 20:24:36.775: WARN/dalvikvm(1468): Last 10 entries in JNI local reference table: 11-13 20:24:36.775: WARN/dalvikvm(1468): 502: 0x465117b0 cls=Ljava/lang/Class; 'Lunecm4droid/kiio/es/mainUECM;' (164 bytes) 11-13 20:24:36.775: WARN/dalvikvm(1468): 503: 0x465117b0 cls=Ljava/lang/Class; 'Lunecm4droid/kiio/es/mainUECM;' (164 bytes) 11-13 20:24:36.775: WARN/dalvikvm(1468): 504: 0x465117b0 cls=Ljava/lang/Class; 'Lunecm4droid/kiio/es/mainUECM;' (164 bytes) 11-13 20:24:36.775: WARN/dalvikvm(1468): 505: 0x465117b0 […]

Android – 从网站下载图片,保存到内部私人应用程序的内存,显示列表项

我想要做的是这样的:我想我的应用程序从互联网上下载一个图像,并将其保存到手机的内部存储器的应用程序私有位置。 如果没有图像可用于列表项目(即它不能在互联网上find),我想要一个默认的占位符图像显示。 这是我在list_item_row.xml文件中定义的默认图像。 在我的ListActivity文件中,我调用了一个我写的CustomCursorAdapter类的实例。 它在CustomCursorAdapter中遍历所有列表项,并定义需要将哪些内容映射到视图,包括通过尝试从内部内存读取图像文件。 我已经看到了这个问题上的几个问题,但这些例子要么是特定于外部手机内存(如SDCard),涉及保存string而不是图像,或涉及使用Bitmap.CompressFormat减less文件的分辨率(这是不必要的我的情况,因为这些图像将是小分辨率的小缩略图)。 试图拼凑每个例子中的代码一直是困难的,因此我问我的具体例子。 目前,我相信我已经写了有效的代码,但没有图像显示我的列表项目,包括默认的占位符图像。 我不知道这个问题是由无效的下载/保存代码,还是无效的读取代码造成的 – 这不利于我不知道如何检查内部存储器来查看图像是否存在。 无论如何,这是我的代码。 任何帮助将不胜感激。 ProductUtils.java public static String productLookup(String productID, Context c) throws IOException { URL url = new URL("http://www.samplewebsite.com/" + productID + ".jpg"); URLConnection connection = url.openConnection(); InputStream input = connection.getInputStream(); FileOutputStream output = c.openFileOutput(productID + "-thumbnail.jpg", Context.MODE_PRIVATE); byte[] data = new byte[1024]; output.write(data); output.flush(); […]

将AWTgraphics代码移植到Android

我们希望在Android平台上使用我们现有的一些Java AWTgraphics代码。 据我所知,Android不包括任何AWT类 – 没有Graphics2D , Path2D , FontMetrics等。 将我们的绘图代码移植到Android的最佳方法是什么? 理想情况下,我们希望修改我们的代码库,以便同时针对Android和genericsJava。

如何将工具栏添加到Android活动?

Android官方Twitter客户端有一个不错的工具栏,当你点击一个消息,让你retweet,回复等。我怎么能重新创build一个这样的工具栏?

如何强制Proguard保留我的.xml资源文件?

我成功地为我的Android应用程序使用proguard。 但是,有一个应用程序,我遇到了麻烦。 这个应用程序使用一个存储在包中的.xml文件的java库。 InputStream istream = Library.class.getResourceAsStream("resource.xml"); 当proguard被禁用时,这个库很好用。 但是,运行proguard,似乎xml文件只是完全剥离。 相关的proguard.cfg -optimizationpasses 5 -dontusemixedcaseclassnames -dontskipnonpubliclibraryclasses -dontpreverify #-dontobfuscate #-repackageclasses '' //THIS IS DISABLED -keepattributes *Annotation* -keepattributes Signature -verbose -dontwarn roboguice.activity.RoboMapActivity -optimizations !code/simplification/arithmetic,!field/*,!class/merging/* 任何想法如何强制保持这个XML文件?

如何弄清楚类名所表示的内部匿名类?

我在Eclipse中使用MAT工具来调查内存泄漏问题。 我发现泄漏是由我的应用程序中的匿名内部类实例引起的。 MAT中显示的类名是com.mycompany.myproduct.MyActivity $ 3。 在MyActivity.java中定义了许多匿名的内部类。 我如何知道哪个内部类com.mycompany.myproduct.MyActivity $ 3表示? 谢谢。

基于OpenCV for Android的matrix乘法

我可能在这里是非常愚蠢的,但是我在使用OpenCV for Android做一些基本的Mat乘法时遇到了麻烦。 我有两个相同types的Mat, CV_64F mat1尺寸:3行,3列 mat2尺寸:3行,1列 我想乘以他们给大小3行1列的产品mat3 。 我试过使用: Mat mat3 = new Mat(3, 1, CvType.CV_64F); Core.multiply(mat1, mat2, mat3); 但是我得到一个错误: CvException [org.opencv.core.CvException:/home/andreyk/OpenCV2/trunk/opencv_2.3.1.b2/modules/core/src/arithm.cpp:1253:error:(-209)该操作既不是'array op (const cv :: _ InputArray&,const cv :: _ InputArray&,array''(其中数组的大小和通道数相同),也不是'数组运算标量',也不是'标量运算数组' const cv :: _ OutputArray&,const cv :: _ InputArray&,int,void(* )(const uchar ,size_t,const uchar *,size_t,uchar *,size_t,cv :: Size,void *),bool,void *) 我究竟做错了什么? 提前感谢您的帮助。 编辑: […]

Android:FileOutputStream和FileWriter之间的区别

我想知道Android的FileOutputStream和FileWriter类之间的确切区别。 什么时候最适合每个人使用?

Eclipse内容辅助错误

最近,我一直在使用Eclipse的内容来解决越来越多的问题。 在我的一些项目中,我没有从内容帮助中得到任何build议,在其他项目中,我得到了部分或全部预期build议。 通常在Eclipse中没有“错误”,但是当出现错误时,这里是一个例子: “内容辅助”没有正常完成。 请参阅日志以获取更多信息。 Pb(324)无法parsingandroid.support.v4.app.LoaderManager $ LoaderCallbackstypes。 它是从所需的.class文件间接引用的 我曾试过类似的问题,但没有运气的各种build议(包括但不限于以下两个)。 我甚至去除和重新安装eclipse,并重新创build没有任何Eclipse元数据或设置的项目。 Eclipse内容辅助不能与Android一起使用 Eclipse / Java代码完成不起作用 任何帮助是极大的赞赏。 Eclipse SDK版本:3.7.2生成ID:M20120208-0800 Android开发工具包版本:18.0.0.v201203301601-306762 错误日志: !ENTRY org.eclipse.ui 4 0 2012-05-22 09:25:34.061 !MESSAGE Pb(324) The type android.support.v4.app.LoaderManager$LoaderCallbacks cannot be resolved. It is indirectly referenced from required .class files !STACK 0 org.eclipse.jdt.internal.compiler.problem.AbortCompilation: Pb(324) The type android.support.v4.app.LoaderManager$LoaderCallbacks cannot be resolved. It is indirectly […]