我正在开发一个需要一些rmi东西的Android应用程序,因为Android默认情况下不支持rmi我发现这个项目可以用来捆绑我的Android应用程序的rmi包但我找不到包含java.rmi包的jar .任何人都可以建议在哪里找到它?或任何其他方式使用java.rmi与Android
谢谢 !!!
我在Adnroid 2.2 SDK上,无法在MultiUserChat类中获取我的静态块来执行.我试图强制加载它
try
{
String qual = MultiUserChat.class.getName();
ClassLoader.getSystemClassLoader().loadClass(qual);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)
它总是击中捕获块.'qual'获得该类的有效名称......它可以是什么?
我正在编写一个Android应用程序,我有一个类,可以生成并维护一些偶尔可以更改的固定URL.我将它们全部保存在一个名为UrlUtils的类中:
public class UrlUtils {
private static String sUrlBase = "http://google.com";
/**
* Called occasionally
*/
public static void refreshUrlBases() {
sUrlBase = "http://yahoo.com/" + new Random().nextInt();
}
public static String getUrlBase() {
return sUrlBase;
}
}
Run Code Online (Sandbox Code Playgroud)
我必须拨打getUrlBase()上面的很多电话,所以我正在考虑sUrlBase公开并直接访问它.这种方法在性能方面会更好吗?
我被分配了扩展软件的某个组件(由其他人编写).它是用Android编写的,完全用Java编写(没有我知道的本机/ c ++组件).
熟悉代码时,我遇到了一个方法(渲染类的绘图方法).该方法涉及一个更新对象的大循环(然后另一个方法将在以后呈现它们).该方法的创建者似乎在循环之前将所有/大多数成员变量和数组以及其他对象的字段缓存到局部变量中.代码看起来像这样:
float[] coordArr = mCoordArr;
float[] texCoordArr = mTexCoordArr;
float[] cArray = mColArray;
// ... there are further locals too, I didn't copy all here
float[] color = mColor;
float r = color[0];
float g = color[1];
float b = color[2];
float a = color[3];
int texw = mTexW;
int texH = mTexH;
Font font = mFont;
float[] ccords = font.ccords;
float cf = font.cf;
float cu = font.cu;
int len = mCurLength;
// Update …Run Code Online (Sandbox Code Playgroud) 我在onDraw()方法的调用堆栈中有一个3级的方法.它被称为数百次,有时每次重绘数千次.我已经对onDraw()方法进行了大量的分析,我可以看到以下方法占总数的14%,所以绝对值得一看.我需要在压缩缩放和拖动操作期间提高帧速率.
private void getVisiblePointsFromPath(){
double longRads = longitude * (Math.PI / 180);
double latRads = latitude * (Math.PI / 180);
...
}
Run Code Online (Sandbox Code Playgroud)
当方法退出并且双精度超出范围时,我认为它们符合GC的条件,尽管我知道这可能发生的时间是非确定性的.
这样做有什么好处:
public class GisView extends ImageView{
private double longRads;
private double latRads;
private void getVisiblePointsFromPath(){
longRads = longitude * (Math.PI / 180);
latRads = latitude * (Math.PI / 180);
...
}
}
Run Code Online (Sandbox Code Playgroud)
我假设这个习惯用法会导致双打被取消,然后在每次传递时重新分配,但不会导致额外的垃圾,从而减少我造成的GC数量.或者VM比那更聪明?
请注意,我的问题本身并不是"哪个更快",而是关于哪个可能导致GC减少.我可以测量速度差异,但我不太了解Dalvik VM和Android GC来预测哪个导致更少的垃圾.
有人可以解释一下build.prop中的以下属性,
dalvik.vm.heapstartsize=5m
dalvik.vm.heapgrowthlimit=48m
dalvik.vm.heapsize=128m
dalvik.vm.heaptargetutilization=0.75
dalvik.vm.heapminfree=512k
dalvik.vm.heapmaxfree=2m
Run Code Online (Sandbox Code Playgroud)
谢谢你的帮助.
在Android中如何以及究竟将java字节码转换为dex文件?
我知道Android人员已经做过的唯一部分就是将他们从许可问题中解救出来,使系统快速执行,内存需求低,以及其他更多功能,因为它是基于寄存器的VM.
但是我能说出这个名字的名字呢?
我有一个使用jni的apk文件.我可以将classes.dex传递给IDA pro并将其附加到设备上的进程,但我无法进入本机库*.so.怎么做?
我甚至没有在"函数窗口"字段中看到C函数.我只看到java方法.
或者也许在apk中有另一种调试*.so的方法?
是否可以通过编程方式验证系统生成的odex文件的完整性/校验和?
我不知道该如何检测,如果扎根的Android手机上的攻击者是否为应用程序安装了自己的odex文件版本。
android ×10
dalvik ×10
java ×4
performance ×2
caching ×1
classloader ×1
debugging ×1
heap ×1
ida ×1
jsr ×1
static-block ×1