我知道Java的一个重要特点就是它与平台无关,只要你不使用库就可以创建Java应用程序并让它在Windows,Linux,Mac等运行.特定于一个操作系统,并且只要您为相应的操作系统安装了JVM以正确解释事物...
但是,为什么普通的计算机Java程序(如在Java中的简单Hello World,例如Windows或Linux)在手机中运行时也是如此,当时手机也安装了特定的JVM以正确解释事物?
为什么有必要在某些情况下更改程序的体系结构,例如Android开发,或者使用Java ME来创建特定于某些普通手机的应用程序?
我知道有些功能与操作系统的某些功能有关,例如可能不适用于移动平台,例如与控制台,输入法等相关的一些功能,但这是真正的唯一原因这使得事情不兼容?如果是这样,为什么一个只是声明和初始化整数变量的简单应用程序不能在所有具有JVM可用的非移动和移动平台上运行?
我知道之前发布过的其他问题,比如这个问题,但是我没有把重点放在我的目标上.
我目前正在考虑开发一个应用程序来处理使用Android OS的手机摄像头捕获的图像.在我做出决定之前,我做了一些研究,发现有一些关于Dalvik VM分配的内存限制的抱怨,这似乎限制了需要操作和处理图像的应用程序.如果我必须处理例如用相机拍摄的3张照片,在我的过程中应用滤镜,变换和其他类型的数学运算,我应该记住哪些限制?
我想知道是否可以使用Android 1.6操作系统以任何方式更改Dalvik VM为每个应用程序分配的内存的默认值(默认值为16 MB).有没有人调查过这个可以帮我解决的问题?
我还阅读了Android 2.1兼容性定义文档(可在此处获取:http: //static.googleusercontent.com/external_content/untrusted_dlcp/source.android.com/pt-PT//compatibility/android-2.1-cdd.pdf )如果有必要,可以将Dalvik VM的内存分配从16 MB更改为24 MB甚至更大的数量,但是在任何地方都没有提到如何做到这一点.
如果有人之前已经研究过这些问题并且可以给我一些帮助或提示,那将非常感激.谢谢.
我之前使用过AspectJ for Java,最近我考虑过检查C++语言存在哪些可能性.
我听说过AspectC++,但与AspectJ不同,AspectC++似乎被放弃了,因为最新版本发布于2005年12月21日,根据他们的网站.
我想知道现在是否有更新的替代方案正在使用或开发,并且仍然支持并且不断更新和发展,并且如果任何这样的替代方案碰巧有某种集成插件,以便在Eclipse IDE中更容易使用.
如果没有,在考虑使用AspectC++之前我是否应该注意一些最有问题的限制?
提前致谢.
我正在使用InstrumentationTestCase类来对活动中的某些内容进行单元测试.
在启动此活动之前,我需要能够检查SharedPreferences的内容并对其进行编辑.
我无法使用setUp方法创建Activity并访问它的SharedPreferences对象进行编辑,然后在完成setUp方法之前关闭该活动,因为它显然是锁定测试处理.
在我在测试中启动活动之后,我也无法访问SharedPreferences,因为一旦Activity启动,它就会在我有机会获得它之前更改SharedPreferences对象并按照它行动.
我之前显然无法访问SharedPreferences,因为我没有Activity对象......而且一旦我这样做,它就已经在执行代码并被启动了......
所以,我的问题是,在我通过Intent实际创建Activity之前,有没有办法访问此Activity的SharedPreferences(和任何其他Activity信息)?
我无法将其更改为ActivityInstrumentationTestCase2,因为我的测试在其进程中使用了第二个活动,因此我不能只更改为此类并使用它的setUp()方法来访问SharedPreferences.