草庐IT

android - native C++ 库 - 谁必须释放内存以及如何释放内存?

这是关于Android的。情况:C++库和Java包装器类以及用于使用库中的C++类的native函数(JNI)。当普通java代码需要C++对象时,它会创建相应的javawrapper对象,该对象通过native函数创建C++对象,并在'long'变量中记住指向native对象的指针。在接下来的所有操作中,包装器将this指针指向native函数等。问题:最后如何释放所有分配的C++对象?目前每个包装类都有“finalize”方法,它调用native函数来释放C++对象,但Android不保证调用“finalize”!另一方面,C++库通常不知道java代码分配了多少个以及什么类型的

安卓应用 : Web vs Native

我想开发一个具有某些Facebook功能的Android应用程序。如果我想过滤和处理从时间线返回的一些数据,开发此应用程序的最佳方法是什么? 最佳答案 如果您是初学者并且具备Javascript技能,请选择Titanium。这是一个非常好的框架,可以将您的javascript代码变成完全原生的。您所有的代码都是Javascript,并且有一组非常有用的APIliketheFacebookone.否则,如果您对Java感到满意,那么最好的选择是使用native。有一个officialFacebookSDKforAndroid.如果你对

android - Android 应用程序可以使用套接字与 native Android 服务通信吗?

我正在尝试让Android应用程序与本地服务(交叉编译的ARM二进制文件或Linux脚本)通信,我想知道我是否可以使用套接字来做到这一点?基本上,native服务将在初始化时运行,并在执行其他操作之前等待应用向其发送数据。这可能吗,Android应用程序是否需要root权限才能执行此操作?谢谢。 最佳答案 是的,这是可能的。不,该应用不需要任何特殊许可-对于unix域套接字,您甚至不需要互联网许可。唯一需要特殊许可的地方是启动服务的地方-本质上,你必须给它oomkillervalues告诉android不理会那个进程,和/或将它设置

android - 如何让 android 删除旧的 native 库?

我试图从我的应用程序中删除一些原生库,因为我不再使用它们,但在我的手机中安装apk后,我可以看到原生库仍然存在。正如我所见,android只是通过替换我的libs/目录中的文件来正确地复制/更新native库,但显然当它们不再在apk中时它不会删除它们。我怎么知道图书馆还在那里?首先,应用程序的大小保持不变,我正在删除一些非常大的库,其次,如果我保留System.load(...)语句,应用程序仍然能够加载库。我为此找到的唯一解决方案是卸载该应用程序并进行全新安装,但对于从GooglePlay更新应用程序的用户来说,这不是一个明显的解决方案,是的,这个问题严重影响了我的应用程序功能.我

android - 打开 native 电话簿作为 Intent 并将其用于搜索。可能的?

作为主题。我研究了一整天,知道我知道我可以使用native电话簿添加联系人,通过native短信应用程序发送短信。但是我找不到任何方法可以使用native电话簿来搜索联系人。我尝试使用文档:http://developer.android.com/reference/android/provider/ContactsContract.Intents.html#SEARCH_SUGGESTION_CLICKED以及与之相关的所有常见事物。我的问题是:是否可以使用native电话簿来搜索和检索联系人?如果是这样,非常感谢示例。 最佳答案

Android Activity 生命周期和 JNI native 代码生命周期

我有一个带有native代码的简单应用程序。即一个Activity加上native代码。当Activity进入后台时,我会保持native代码运行以进行一些处理。问题是当Activity被OS终止时(由于资源不足),JNI代码似乎不知道Java领域发生了什么并且仍在执行其工作,因此浪费了资源。为什么Android只杀死Activity而不是整个进程?在这种情况下,native代码如何知道Activity已被终止?OnDestroy()可能不会被调用。 最佳答案 安Activity在Android应用程序中,文档中将其描述为Anact

android - MediaMetadataRetriever.setDataSource( native 方法)导致 RuntimeException : status = 0x80000000

我尝试使用android.media.MediaMetadataRetriever从我的android应用程序中的jpg文件获取一些元数据信息。这是我的代码:publiclonggetDuration(StringvideoFilePath,Contextcontext){Filefile=loadVideoFile(videoFilePath);if(file==null){return-1;}MediaMetadataRetrieverretriever=newMediaMetadataRetriever();file.setReadable(true,false);retriev

java - 运行 android native 代码导致 java.lang.UnsatisfiedLinkError

我有一个带有native代码的Android应用程序,我在其中使用了openCV库。在手机上运行该应用程序时一切正常,但是当我尝试在平板电脑(Lenovoyoga2pro)上运行它时,我遇到了这个错误:01-0311:53:13.007:E/AndroidRuntime(25632):FATALEXCEPTION:main01-0311:53:13.007:E/AndroidRuntime(25632):Process:,PID:2563201-0311:53:13.007:E/AndroidRuntime(25632):java.lang.UnsatisfiedLinkError:d

javascript - 通过浏览器与 native 应用程序在 Android 上进行缓慢的 touchmove 轮询

在我看来,iPhone捕获触摸移动事件的频率是Android的大约4倍。我正在用javascript编码并通过浏览器访问。据我所知,Android和iPhone都使用webkit-所以我没想到会有这样的差异。有什么办法可以增加安卓浏览器的轮询吗?从Android平台上的原生应用的WebView来看,轮询速度是否一样慢?有什么方法可以增加Android平台上web-view的轮询?Android平台上的native应用程序中的轮询是否很慢?我知道硬件/固件在Android上有所不同。我真正想知道的是-是否有任何已知方法可以通过WebView、native代码或浏览器内的javascrip

android - 用于启动 native 应用程序的二维码

关于在Android设备中使用QR码的2个问题:1.是否可以通过二维码启动原生Android应用程序?也许通过一些配置的URI模式?2.另一个可能对我有用的选项是在我自己的应用程序中安装二维码扫描仪。我是否有可能以某种方式在我的应用程序中包含一个扫描二维码的不同应用程序?还是我必须自己实现扫描?谢谢 最佳答案 要通过Intent在Android中扫描条形码,请参阅https://github.com/zxing/zxing/wiki/Scanning-Via-Intent要从二维码触发应用程序,是的,您需要注册该应用程序以处理特定的