`
ouyangfeng521
  • 浏览: 248729 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

android native c++ thread

 
阅读更多

下面的代码示例在android平台下使用线程类threads.h

 

MyThread.h

 

#ifndef _MYTHREAD_H
#define _MYTHREAD_H

#include <utils/threads.h>

namespace android {

class MyThread: public Thread {
public:
	MyThread();
	//virtual ~MyThread();
	//如果返回true,循环调用此函数,返回false下一次不会再调用此函数
	virtual bool threadLoop();
};

}
#endif

MyThread.cpp

#define LOG_TAG "MyThread"

#include <utils/Log.h>
#include "MyThread.h"

namespace android {

MyThread::MyThread() :
		Thread(false) {
	LOGD("MyThread");
}

//MyThread::~MyThread() {
//	LOGD("~MyThread");
//}

bool MyThread::threadLoop() {
	LOGD("threadLoop");
	return true;
}

}

 

main调用 

 

Main.cpp

 

#define LOG_TAG "Main"

#include <utils/Log.h>
#include <utils/threads.h>
#include "MyThread.h"

using namespace android;

int main()
{
	sp<MyThread>  thread = new MyThread;//此处一定要这么写
	thread->run("MyThread", PRIORITY_URGENT_DISPLAY);
	while(1);
	LOGD("main end");
	return 0;
}

 

最后Android.mk

 

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)

LOCAL_SRC_FILES := MyThread.cpp \
	Main.cpp \
	
   
LOCAL_SHARED_LIBRARIES :=libandroid_runtime \
	libcutils \
	libutils  
	
LOCAL_MODULE := android_thread

LOCAL_MODULE_TAGS := eng
	
LOCAL_PRELINK_MODULE := false

#include $(BUILD_SHARED_LIBRARY)
include $(BUILD_EXECUTABLE)
 
分享到:
评论
1 楼 kezhon 2014-04-16  
大侠您好,能问下为什么main函数内要 while(1);  这句吗?

相关推荐

    Android Native 内存泄漏系统化解决方案

    在 Android 平台上,C++ 内存泄漏问题的分析和定位一直是困扰开发人员的难题,因为地图渲染、导航等核心功能对性能要求很高,高德地图 APP 中存在大量的 C++ 代码。解决这个问题对于产品质量尤为重要和关键,高德...

    Android C++高级编程 使用NDK随书源码

    9. **多线程与并发**:C++提供了丰富的多线程和并发工具,如std::thread、std::mutex、std::future等,这些在处理多任务并行时非常有用,尤其是在Android应用中。 10. **调试技巧**:使用NDK-GDB或Android Studio的...

    Android下各语言加callStack示例

    本文将深入探讨如何在Android环境下为不同语言(C语言、C++、Java以及内核空间)添加并打印调用堆栈信息。 首先,让我们来看看Java语言的call stack。在Java中,我们可以利用`Thread.currentThread().getStackTrace...

    android C++ 高级编程 代码

    1. **JNI(Java Native Interface)**:JNI是Android系统中Java与本地代码(如C++)交互的桥梁。它允许Java代码调用C/C++函数,反之亦然。在开发过程中,开发者通常使用JNI来实现性能敏感的部分,如游戏引擎、图像...

    AndroidNative内存泄漏系统化解决方案.docx

    在Android平台上,C++内存泄漏是一个复杂的问题,尤其是在像高德地图这样依赖高性能的APP中。解决这个问题的关键在于有效地跟踪内存分配和栈回溯。本文档介绍了高德地图技术团队为解决Android Native内存泄漏问题所...

    Android port of Boost C++ Libraries.zip

    2. **多线程**(Thread):Boost.Thread库提供了在C++中编写多线程程序的接口,支持线程同步、互斥量、条件变量等功能,这对于实现高性能的Android应用至关重要。 3. **函数对象**(Function):Boost.Function库...

    Android Thread

    在Android系统中,线程(Thread)是执行任务的基本单元,它允许应用程序同时处理多个任务,提高程序的响应性和效率。JNI(Java Native Interface)则是Java平台提供的一种接口,允许Java代码和其他语言写的代码进行...

    [Android] 图片JNI(C++\Java)高斯模糊 多线程

    本篇文章将深入探讨如何使用JNI(Java Native Interface)技术,结合C++和Java,实现在Android平台上进行高效的图片高斯模糊处理,并且利用多线程优化性能。 首先,了解JNI是Java平台提供的一种技术,允许Java代码...

    Android ndk cpp 线程运行 java 方法

    在Android开发中,有时我们需要利用C++(通过NDK)来编写高性能的代码,并与Java层进行交互。本文将深入探讨如何在C++线程中调用Java方法,以实现跨语言的通信。我们将基于Android Studio 3.0和Gradle 3.2.0的环境来...

    LLDB调试Android NDK

    在Android开发中,Native Development Kit (NDK) 允许开发者使用C++和其他原生语言编写性能关键的代码,这通常涉及到系统级操作或者利用硬件特性。为了有效地调试这些原生代码,Android Studio提供了集成的LLDB调试...

    android 平台 srtp 移植

    1. **Android NDK开发**:SRTP通常由C或C++编写,因此需要利用Android Native Development Kit (NDK)来编译和运行这些代码。NDK允许开发者在Android应用中使用原生代码,这在处理性能敏感的实时通信任务时非常有用。...

    android-framework-Android系统原理与开发

    - **JNI**:Java Native Interface,用于连接Java代码和本地C/C++代码。 - **Native Method**:本地方法,通常是指用C/C++编写的函数,通过JNI调用。 ### Android Process 模式 在Android中,每个应用程序通常运行...

    android开发手册2

    Android NDK(Native Development Kit)允许开发者使用原生代码(如C++)编写部分应用,以提高性能或利用现有库。 3. **TraderSpi.cpp, MdSpi.cpp, AutoTrader.cpp** - 这些文件可能涉及到金融交易的SPI(Service ...

    Android Book

    在第三篇中,本书转向更底层的技术——JNI(Java Native Interface)和Android核心服务的线程模式。通过JNI,开发者可以调用本地代码,实现高性能计算。而核心服务的线程模式则关注于如何在C++层面上管理和优化线程...

    freetype android 编译so库

    在Android开发中,通常使用NDK(Native Development Kit)来编译C/C++库。确保已经安装了与Android Studio兼容的NDK版本,并配置好环境变量。检查`ndk-bundle`目录,确认NDK已正确安装。 3. **配置项目**: 进入...

    android TLS

    在Android的JNI(Java Native Interface)环境下,开发者可以利用pthread库提供的TLS功能来实现这一目标。 首先,我们需要理解JNI。JNI是Java平台的一部分,它允许Java代码和其他语言写的代码进行交互。在Android...

    android_framework_hal

    - **JNI (Java Native Interface)**:Java本地接口,用于实现Java代码与本地代码之间的通信。 - **NativeMethod**:本地方法,通常是用C/C++编写的,用于实现与硬件交互的功能。 #### 四、AndroidService 与 ...

    OpenCV_for_AndroidNDK

    Android的Handler、Thread、AsyncTask或使用NDK的线程API都可以实现这一目的。 6. **硬件加速**:OpenCV支持GPU加速,通过OpenCL(Open Computing Language)接口,可以在兼容的设备上利用GPU进行计算,进一步提高...

Global site tag (gtag.js) - Google Analytics