我想在Ubuntu 8.10上使用JNI,使用Eclipse和gcc(如果有风味,则使用Ubuntu的标准版).
尽管make文件成功创建,我似乎无法加载我的库.
主要的Java类如下:
class Hello {
public native void sayHello();
static {
System.loadLibrary("hello.so");
}
public static void main(String[] args) {
Hello h = new Hello();
h.sayHello();
}
}
Run Code Online (Sandbox Code Playgroud)
我的make文件是这样的;
all : hello.so
hello.so : Hello.o
gcc -shared -o hello.so Hello.o
Hello.o : Hello.c Hello.h
gcc -I/usr/lib/jvm/java-6-sun/include -I/usr/lib/jvm/java-6-sun/include/linux -c Hello.c -o Hello.o
Hello.h : Hello.class
javah -jni Hello
clean :
-del Hello.h
-del Hello.o
Run Code Online (Sandbox Code Playgroud)
其余的代码(Hello.c)看起来像人们想的那样.
我得到的错误如下;
Exception in thread "main" java.lang.UnsatisfiedLinkError: no hello.so in java.library.path
Run Code Online (Sandbox Code Playgroud)
如果我使用显式路径:
System.loadLibrary("/home/gavin/Work/workspace/JNI/hello.so");
Run Code Online (Sandbox Code Playgroud)
然后它可以工作,但如果可能的话,我宁愿不使用显式路径.
我正在编写一个Android应用程序,我正在寻找最快的(在设置方面)方式让我将数据发送到服务器并根据请求接收信息.
我们正在谈论基本的东西.我有一个日志文件告诉我用户如何使用我的应用程序(在测试版中,我不会通过不断记录常常运行用户体验)并且我想将它传达给我的服务器(我没有设置).
我不需要安全性,我不需要高吞吐量或并发连接(我有3个手机可以玩)但我需要快速设置它!
我记得当天设置XAMPP特别没脑子,那么也许我可以使用PHP将文件从手机发送到服务器?
理想情况下,服务器可以响应GET,这将允许我发回一些最终影响UI的SQL语句.(这意味着根据最常用的选项调整所呈现的选项).
所以你有它,我大约4年前使用PHP并且如果它是最好的那样将沿着那条路走下去但是如果有某种新的fangled端口打开关闭二进制流唱歌和跳舞方法已经取代该选项我很想知道.
本教程似乎很有用,但我不需要对象序列化,只需来回文本文件,自然压缩.
Android附带了内置的Apache HTTP Client 4.0以及java.net.URL和java.net.HttpUrlConnection,我宁愿不用我的第三方库添加太多bult.
请记住,我也在设置服务器端,所以我正在寻找总体最小代码行!
我试图将两个不同的字符串分配给两个不同的变量,这取决于Ant中的两个布尔值.
伪代码(ish):
if(condition)
if(property1 == null)
property2 = string1;
property3 = string2;
else
property2 = string2;
property3 = string1;
Run Code Online (Sandbox Code Playgroud)
我试过的是;
<if>
<and>
<not><isset property="property1"/></not>
<istrue value="${condition}" />
</and>
<then>
<property name="property2" value="string1" />
<property name="property3" value="string2" />
</then>
<else>
<property name="property2" value="string2" />
<property name="property3" value="string1" />
</else>
</if>
Run Code Online (Sandbox Code Playgroud)
但是我得到包含" <if>" 的行的空指针异常.我可以使用<condition property=...>标签让它工作,但一次只能设置一个属性.我尝试过使用,<propertyset>但也不允许这样做.
我是蚂蚁的新手,你可能已经猜到了:).
GAV
我是一个相当称职的Java程序员,对C来说很新.我正在尝试优化具有四种操作模式的例程.
我遍历图像中的所有像素,并根据传递的"模式"计算新的像素值.
我的问题是关于两个嵌套for循环中switch语句的开销.我对任何有关基本C语句,数学和逻辑运算的相对效率的文档链接感兴趣.
代码如下:
for (x = 0; x < width; x++) {
for (y = 0; y < height; y++) {
switch (mode) /* select the type of calculation */
{
case 0:
weight = dCentre / maxDistanceEdge;
case 1:
weight = (float)x/width;
break;
case 2:
weight = (float)y/height;
break;
case 3:
weight = dBottomLeft / maxDistanceCorner;
break;
case 4:
weight = dTopRight / maxDistanceCorner;
break;
default:
weight = 1;
break;
}
// Calculate the new pixel value given …Run Code Online (Sandbox Code Playgroud) 我有一年的编写客户端代码的经验,但没有服务器的东西.我想稍微限制一下这个问题所以我会简化我想要实现的目标.
我想编写服务器代码,这样两个客户端(浏览器或iPhone/Android)可以连接,当两个玩家连接时,他们会看到计时器倒数为零.时钟将在服务器上同步,客户端将是唯一可识别的.
这里的问题是连接这个词,人们在多人游戏中使用了什么?打开TCP套接字进行双向通信?你可以说我不确定我在说什么.我希望使用AppEngine,但我不确定它是否适合它的请求.
我有一些Java的经验,虽然Erlang听起来是最好的选择,但我只是想玩这个并快速推出,所以Java会更容易.我只需要知道连接球员的最佳方式等.
谢谢,
GAV
我必须测试一个间隔后做一定工作量的方法.
while (running)
{
...
// Work
...
Thread.Sleep(Interval);
}
Run Code Online (Sandbox Code Playgroud)
Interval作为参数传递给类,所以我可以传入0或1,但我对如何模拟系统时钟感兴趣,如果不是这样的话.
在我的测试中,我希望能够通过TimeSpan Interval简单地设置时间并让线程唤醒.
我从来没有为之前对执行线程起作用的代码编写测试,我确信有一些缺陷要避免 - 请随意详细说明你使用的方法.
谢谢!
我喜欢C#的新世界,我已经开始尝试我的玩具程序了,我想开始编写一些单元测试.
我的代码目前通过DatabaseDataContext对象(*.dbml文件)使用数据库,为此对象创建模拟的最佳方法是什么?鉴于生成数据库LINQ - > SQL代码是多么容易,以及请求的常见程度,我希望VS2010具有内置功能来帮助进行测试.
如果我要离开,这必须手动完成,请您告诉我您的首选方法?
非常感谢,
加文
我需要一台服务器来发送和接收来自运行我正在编写的多人游戏的Android客户端的XMPP消息.我之所以选择XMPP是因为我不想长时间轮询,而套接字可能会成为蜂窝网络的问题(运营商可能阻止它们).
我一直在看OpenFire听起来很神奇,我不需要管理面板语音聊天,聊天室等等.它似乎非常重量级,面向企业的聊天解决方案,我只需要匹配玩家并传递他们的动作在最后记录得分.是否有一个简化的OpenFire版本,所以我可以注册一个组件,它将服务所有请求?关于使用openfire进行适应,我找不到添加自定义组件来执行类似任务的明确示例.
我需要的是一个库或现有的简单服务器,我可以运行并注册我的自定义消息监听器.我只需要能够为任何进入的请求提供服务并做出适当的响应.我希望我不必编写线程管理,因为这个问题对于典型的聊天服务器来说很常见,但我确实需要编写代码来解释和响应发送的消息.
我希望这是有道理的,任何编写过这样一段服务器代码的人都会喜欢这个例子.对于那些没有尝试过,但想知道如何开始的人,请加入!越详细越好.
提前致谢,
GAV
我有一个应用程序,当用户要求过滤图像时会生成一个新线程.
这是我所拥有的唯一类型的任务,并且所有任务都同等重要.
如果我要求太多并发线程(我想要的最大值是9),线程管理器会抛出RejectedExecutionException.
在那一刻,我所做的是;
// Manage Concurrent Tasks
private Queue<AsyncTask<Bitmap,Integer,Integer>> tasks = new LinkedList<AsyncTask<Bitmap,Integer,Integer>>();
@Override
public int remainingSize() {
return tasks.size();
}
@Override
public void addTask(AsyncTask<Bitmap, Integer, Integer> task) {
try{
task.execute(currentThumbnail);
while(!tasks.isEmpty()){
task = tasks.remove();
task.execute(currentThumbnail);
}
} catch (RejectedExecutionException r){
Log.i(TAG,"Caught RejectedExecutionException Exception - Adding task to Queue");
tasks.add(task);
}
}
Run Code Online (Sandbox Code Playgroud)
只需将被拒绝的任务添加到队列中,下次启动线程时,将检查队列以查看是否存在待办事项.
显而易见的问题是,如果最终任务在第一次尝试时被拒绝,它将永远不会重新启动(直到它不再需要它之后).
只是想知道我是否应该使用一个简单的模型来管理这类事情.我需要任务在完成后通知队列,所以我知道有空间,但我不确定如何.
亲切的问候,
加文
尝试对XML文档进行简单的解析.取出下面两个PropertyGroups的最简单方法是什么?
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
1
</PropertyGroup>
<PropertyGroup xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
2
</PropertyGroup>
</Project>
Run Code Online (Sandbox Code Playgroud)
我一直在尝试使用XElement.Elements(XName),但为了这样做,我需要在PropertyGroup前加上xmlns.问题是我不关心名称空间,如果它将来发生变化,我仍然希望检索所有PropertyGroups.
var xml = XElement.Load(fileNameWithPath);
var nameSpace = xml.GetDefaultNamespace();
var propertyGroups= xml.Elements(nameSpace + "PropertyGroup");
Run Code Online (Sandbox Code Playgroud)
您是否可以改进此代码,以便我不需要使用nameSpace作为前缀?我知道我基本上可以重新实现Elements方法,但我希望有一些方法来传递通配符名称空间?
谢谢,
加文
java ×4
c# ×3
android ×2
c ×2
.net ×1
ant ×1
database ×1
if-statement ×1
overhead ×1
properties ×1
testing ×1
unit-testing ×1
xml ×1
xmpp ×1