小编gee*_*eta的帖子

SSE指令添加数组的所有元素

我是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)

c++ arrays sse simd sse2

7
推荐指数
1
解决办法
2万
查看次数

NDK分析显示".so没有符号"

我正在使用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)

即使我做得很好,我也无法弄清楚为什么会出现这个错误.

任何人都可以帮助我.

任何帮助将不胜感激.

提前致谢.

profiling android-ndk

6
推荐指数
1
解决办法
4338
查看次数

使用opencv绘制正弦波

我想使用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)

c++ opencv graph visual-studio-2010

6
推荐指数
1
解决办法
3828
查看次数

如何在Android中进行内存和CPU时间分析

可能重复:
哪些Android工具和方法最有效地查找内存/资源泄漏?

我想对我的Android应用程序进行内存和CPU时间分析.我的应用程序也使用C源文件.所以我想在Android级别以及ndk级别进行性能分析.因为有Vtune软件用于对Windows应用程序进行性能分析.有没有像Vtune这样的其他软件将用于分析Android应用程序?这可以显示哪些功能占用了最大的CPU时间和内存.我使用MAT(内存分析工具),它在我的Android应用程序中显示内存泄漏,但我无法找到内存泄漏发生的位置.任何正文可以帮助知道哪个工具非常有效地进行Android应用程序的分析.

提前致谢

android android-ndk

5
推荐指数
1
解决办法
6471
查看次数

错误:无法打开跟踪文件'/mnt/sdcard/method.trace':android 3.0中的权限被拒绝

使用时创建跟踪文件时遇到问题

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

5
推荐指数
0
解决办法
2443
查看次数

使用wifi的PC和Android手机之间的通信

我想开发一个客户端服务器应用程序,其中服务器在Android手机上具有wifi和客户端应用程序的PC上.我想在android中使用vc ++ .Net和客户端应用程序制作服务器应用程序.我是网络编程的新手,我无法在互联网上找到任何关于此的线索.我也不知道是否有可能使用vc ++制作服务器.net和客户端是使用android制作的.

任何人都可以指示我如何为此而动.如果可能的话,请提供一些与此相关的链接.

任何帮助将不胜感激.

android client-server visual-c++

1
推荐指数
1
解决办法
8550
查看次数

从JNI在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);

java-native-interface android android-ndk

0
推荐指数
1
解决办法
8272
查看次数

java.lang.ExceptionInInitializerError由以下引起:java.lang.UnsatisfiedLinkError:找不到库

我有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)

android android-ndk-r5

0
推荐指数
1
解决办法
1万
查看次数