我是SSE2指令的新手.我找到了一条_mm_add_epi8可以添加两个数组元素的指令.但我想要一个可以添加数组所有元素的SSE指令.
我试图使用以下代码开发此概念:
#include <iostream>
#include <conio.h>
#include <emmintrin.h>
void sse(unsigned char* a,unsigned char* b);
void main()
{
/*unsigned char *arr;
arr=(unsigned char *)malloc(50);*/
unsigned char arr[]={'a','b','c','d','e','f','i','j','k','l','m','n','o','p','q','r','a','b','c','d','e','f','i','j','k','l','m','n','o','p','q','r'};
unsigned char *next_arr=arr+16;
for(int i=0;i<16;i++)
printf("%d,%c ",next_arr[i],next_arr[i]);
sse(arr,next_arr);
getch();
}
void sse(unsigned char* a,unsigned char* b)
{
__m128i* l = (__m128i*)a;
__m128i* r = (__m128i*)b;
__m128i result;
result= _mm_add_epi8(*l, *r);
unsigned char *p;
p=(unsigned char *)&result;
for(int i=0;i<16;i++)
printf("%d ",p[i]);
printf("\n");
l=(__m128i*)p;
r=(__m128i*)(p+8);
result=_mm_add_epi8(*l, *r);
p=(unsigned char *)&result;
printf("%d ",p[0]);
l=(__m128i*)p;
r=(__m128i*)(p+4); …Run Code Online (Sandbox Code Playgroud) 我正在使用android-ndk-profiler-3.1为我的项目进行NDK分析.我已经在Android.mk中进行了如下更改...
LOCAL_PATH := $(call my-dir)
-include android-ndk-profiler.mk
include $(CLEAR_VARS)
# Module name -------------------------------------------------------
LOCAL_CFLAGS += -O3
TARGET_ARCH_ABI :=armeabi
LOCAL_CFLAGS := -pg
LOCAL_STATIC_LIBRARIES := andprof
LOCAL_LDLIBS += -llog
LOCAL_MODULE := libitv
include $(BUILD_SHARED_LIBRARY)
Run Code Online (Sandbox Code Playgroud)
Application.mk如下......
APP_ABI := armeabi
APP_PLATFORM := android-10
Run Code Online (Sandbox Code Playgroud)
我叫monstartup("itv.so"); 函数在本机代码和moncleanup()的开头; 在stop方法中起作用.并成功创建了gmon.out文件.然后我在D:\ android\android-ndk-r6-windows\android-ndk-r6\toolchains\arm-linux-androideabi-4.4.3\prebuilt中粘贴了gmon.out\windows\bin目录.
但是当我尝试使用以下命令读取gmon.out时......
D:\android\android-ndk-r6-windows\android-ndk-r6\toolchains\arm-linux-androideab
i-4.4.3\prebuilt\windows\bin>arm-linux-androideabi-gprof D:\InternetTV_FD_Canvas
\libs\armeabi\libitv.so > out.txt
Run Code Online (Sandbox Code Playgroud)
此错误显示...
arm-linux-androideabi-gprof: file `D:\InternetTV_FD_Canvas\libs\armeabi\libitv.so'
has no symbols
Run Code Online (Sandbox Code Playgroud)
即使我做得很好,我也无法弄清楚为什么会出现这个错误.
任何人都可以帮助我.
任何帮助将不胜感激.
提前致谢.
我想使用openCV在图像上绘制正弦波.我开发了以下代码,但输出未达到预期:
#include "opencv2/imgproc/imgproc.hpp"
#include "opencv2/highgui/highgui.hpp"
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
#include "opencv/cv.h"
#include "opencv/highgui.h"
void main()
{
double y[100];
float x;
for(x=0;x<100;x++)
{
y[(int)floor(x)]=sin(x);
}
IplImage *grf = cvCreateImage( cvSize( 200, 200), IPL_DEPTH_8U, 1 );
for(int x=0;x<100;x++)
{
cvLine(grf , /* the dest image */
cvPoint(x, y[x]), /* start point */
cvPoint(x+1, y[x+1]), /* end point */
CV_RGB(255, 0, 0), /* the color; green */
2, 4, 0); /* thickness, line type, shift */
}
cvNamedWindow("img", CV_WINDOW_AUTOSIZE);
cvShowImage("img", grf); …Run Code Online (Sandbox Code Playgroud) 我想对我的Android应用程序进行内存和CPU时间分析.我的应用程序也使用C源文件.所以我想在Android级别以及ndk级别进行性能分析.因为有Vtune软件用于对Windows应用程序进行性能分析.有没有像Vtune这样的其他软件将用于分析Android应用程序?这可以显示哪些功能占用了最大的CPU时间和内存.我使用MAT(内存分析工具),它在我的Android应用程序中显示内存泄漏,但我无法找到内存泄漏发生的位置.任何正文可以帮助知道哪个工具非常有效地进行Android应用程序的分析.
提前致谢
使用时创建跟踪文件时遇到问题
Debug.startMethodTracing("traceFile");
Run Code Online (Sandbox Code Playgroud)
我还补充说
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
Run Code Online (Sandbox Code Playgroud)
在清单文件中但是当我尝试运行应用程序时,我收到此错误
01-13 10:53:32.739: D/dalvikvm(1261): +++ active profiler count now 1
01-13 10:53:32.739: I/dalvikvm(1261): TRACE STARTED: '/mnt/sdcard/traceFile.trace' 8192KB
01-13 10:53:32.739: E/dalvikvm(1261): Unable to open trace file '/mnt/sdcard/traceFile.trace': Permission denied
01-13 10:53:32.739: D/dalvikvm(1261): +++ active profiler count now 0
01-13 10:53:32.950: D/AndroidRuntime(1261): Shutting down VM
01-13 10:53:32.950: W/dalvikvm(1261): threadid=1: thread exiting with uncaught exception (group=0x40014760)
01-13 10:53:33.070: E/AndroidRuntime(1261): FATAL EXCEPTION: main
01-13 10:53:33.070: E/AndroidRuntime(1261): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.sample.internetTV/com.sample.internetTV.Internet_TV4}: java.lang.RuntimeException: Unable to open trace file …Run Code Online (Sandbox Code Playgroud) 我想开发一个客户端服务器应用程序,其中服务器在Android手机上具有wifi和客户端应用程序的PC上.我想在android中使用vc ++ .Net和客户端应用程序制作服务器应用程序.我是网络编程的新手,我无法在互联网上找到任何关于此的线索.我也不知道是否有可能使用vc ++制作服务器.net和客户端是使用android制作的.
任何人都可以指示我如何为此而动.如果可能的话,请提供一些与此相关的链接.
任何帮助将不胜感激.
我想在Android上使用JNI调用非静态方法.我可以使用调用静态方法 CallStaticVoidMethod.为了调用非静态方法,我已经使用过了CallVoidMethod.它不起作用.
任何人都可以告诉我正确的代码从JNI调用Android的非静态方法?
jmethodID method = env->GetMethodID(gJniRefCached.ImsFwkLoaderClass, "DispVideo", "([BII)V");
Run Code Online (Sandbox Code Playgroud)
env-> CallVoidMethod(gJniRefCached.ImsFwkLoaderClass,method,arr,width,height);
我也尝试过使用代码类的对象
jclass cls = env->GetObjectClass(obj);
jmethodID method = env->GetMethodID(cls, "DispVideo", "([BII)V");
env->CallVoidMethod(cls, method,arr,width,height);
我有c和c ++中的现有代码.我在Android.mk文件中添加了这些c文件和cpp文件.我已经在我的应用程序中成功创建了名为itv.so的.so文件.但是现在当我试图运行Android应用程序时它显示的错误就像......
12-20 13:26:31.362: E/AndroidRuntime(716): FATAL EXCEPTION: main
12-20 13:26:31.362: E/AndroidRuntime(716): java.lang.ExceptionInInitializerError
12-20 13:26:31.362: E/AndroidRuntime(716): at com.example.Internet_TV12.onCreate(Internet_TV12.java:38)
12-20 13:26:31.362: E/AndroidRuntime(716): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
12-20 13:26:31.362: E/AndroidRuntime(716): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)
12-20 13:26:31.362: E/AndroidRuntime(716): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
12-20 13:26:31.362: E/AndroidRuntime(716): at android.app.ActivityThread.access$2300(ActivityThread.java:125)
12-20 13:26:31.362: E/AndroidRuntime(716): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
12-20 13:26:31.362: E/AndroidRuntime(716): at android.os.Handler.dispatchMessage(Handler.java:99)
12-20 13:26:31.362: E/AndroidRuntime(716): at android.os.Looper.loop(Looper.java:123)
12-20 13:26:31.362: E/AndroidRuntime(716): at android.app.ActivityThread.main(ActivityThread.java:4627)
12-20 13:26:31.362: E/AndroidRuntime(716): at java.lang.reflect.Method.invokeNative(Native Method)
12-20 13:26:31.362: E/AndroidRuntime(716): at java.lang.reflect.Method.invoke(Method.java:521)
12-20 13:26:31.362: E/AndroidRuntime(716): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
12-20 13:26:31.362: E/AndroidRuntime(716): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
12-20 13:26:31.362: …Run Code Online (Sandbox Code Playgroud)