最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

android關(guān)于native中Thread類的使用源碼解析

 更新時間:2025年06月20日 09:23:44   作者:開發(fā)之奮斗人生  
本文介紹了Android Native中Thread的使用,通過main.cpp啟動線程,TestThread類依次調(diào)用onFirstRef、readyToRun和threadLoop方法,展示線程生命周期及執(zhí)行流程,感興趣的朋友跟隨小編一起看看吧

簡要概述

簡單記錄android中native關(guān)于thread的使用
源碼位置:

system\core\libutils\include\utils\Thread.h
system\core\libutils\Threads.cpp
class Thread : virtual public RefBase
Thread繼承RefBase,有以下的一些特性
// Invoked after creation of initial strong pointer/reference.
virtual void            onFirstRef();

代碼記錄

main.cpp

#include <utils/Log.h>
#include <pthread.h>
#include "TestThread.h"
#ifdef LOG_TAG
#undef LOG_TAG
#endif
#define LOG_TAG "hello_test"
using namespace android;
int main(int args,char** argv) {
    ALOGD("main start TestThread");
    // TestThread
    sp<TestThread> testThread = new TestThread;
    testThread->run("TestThread", PRIORITY_URGENT_DISPLAY);
    while(1){
        if(!testThread->isRunning()){
            break;
        }
    }
     ALOGD("main end");
    return 0;
}

Android.bp

cc_binary{
    name:"hello_test",
    srcs:[
        "main.cpp",
        "TestThread.cpp",
    ],
    shared_libs:[
        "liblog",
        "libutils",
    ],
    cflags: [
            "-Wno-error",
            "-Wno-unused-parameter",
        ],
}

TestThread.h

//
// Created by xxx on 25-6-8.
//
#ifndef ANDROID_TESTTHREAD_H
#define ANDROID_TESTTHREAD_H
#include <utils/threads.h>
#include <utils/Log.h>
namespace android {
    class TestThread : public Thread {
        public:
            TestThread();
            virtual void        onFirstRef();
            virtual status_t    readyToRun();
            virtual bool        threadLoop();
            virtual void        requestExit();
        private:
            int cnt = 0;
    };
}
#endif //ANDROID_TESTTHREAD_H

TestThread.cpp

//
// Created by xxx on 25-6-8.
//
#include "TestThread.h"
namespace android{
    TestThread::TestThread():Thread(false) {
        ALOGD("TestThread");
    }
    void TestThread::onFirstRef(){
        ALOGD("onFirstRef");
    }
    status_t  TestThread::readyToRun(){
        ALOGD("readyToRun");
        return OK;
    }
    bool TestThread::threadLoop() {
        cnt++;
        ALOGD("threadLoop cnt = %d",cnt);
        if(cnt >= 20){
           return false;
        }
        return true;
    }
    void  TestThread::requestExit(){
        ALOGD("requestExit");
    }
}

日志打印如下所示

06-14 22:29:28.500  2094  2094 D hello_test: main start TestThread
06-14 22:29:28.500  2094  2094 D hello_test: TestThread
06-14 22:29:28.500  2094  2094 D hello_test: onFirstRef
06-14 22:29:28.501  2094  2096 D hello_test: readyToRun
06-14 22:29:28.502  2094  2096 D hello_test: threadLoop cnt = 1
...
06-14 22:29:28.505  2094  2096 D hello_test: threadLoop cnt = 20
06-14 22:29:28.505  2094  2094 D hello_test: main end

函數(shù)執(zhí)行順序 TestThread->onFirstRef->readyToRun->threadLoop

到此這篇關(guān)于android關(guān)于native中Thread類的使用的文章就介紹到這了,更多相關(guān)android native Thread類使用內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Android Keystore簽名文件全解析與安全防護

    Android Keystore簽名文件全解析與安全防護

    Keystore是存儲加密密鑰、證書和簽名信息的文件(常見格式為.keystore 和.jks),是Android應(yīng)用簽名的核心,用于驗證應(yīng)用來源的可靠性,保障分發(fā)過程中的完整性,本文給大家介紹Android Keystore簽名文件全解析與安全防護,感興趣的朋友一起看看吧
    2025-08-08
  • Android實現(xiàn)底部切換標(biāo)簽

    Android實現(xiàn)底部切換標(biāo)簽

    這篇文章主要為大家詳細(xì)介紹了Android實現(xiàn)底部切換標(biāo)簽,嵌套Fragment,方便自定義布局,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-07-07
  • Android性能優(yōu)化getResources()與Binder導(dǎo)致界面卡頓優(yōu)化

    Android性能優(yōu)化getResources()與Binder導(dǎo)致界面卡頓優(yōu)化

    這篇文章主要為大家介紹了Android性能優(yōu)化getResources()與Binder導(dǎo)致界面卡頓優(yōu)化示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-02-02
  • Android自定義柱狀圖表的方法實例

    Android自定義柱狀圖表的方法實例

    柱狀圖是我們在日常開發(fā)中經(jīng)常會用到的一種圖表,下面這篇文章主要給大家介紹了關(guān)于Android如何自定義柱狀圖表的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起看看吧
    2018-05-05
  • android 震動和提示音的實現(xiàn)代碼

    android 震動和提示音的實現(xiàn)代碼

    這篇文章主要介紹了android 震動和提示音的實現(xiàn)代碼,代碼簡單易懂,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-12-12
  • Android編程實現(xiàn)在底端顯示選項卡的方法

    Android編程實現(xiàn)在底端顯示選項卡的方法

    這篇文章主要介紹了Android編程實現(xiàn)在底端顯示選項卡的方法,涉及Android界面線性布局、相對布局及選項卡設(shè)置相關(guān)操作技巧,需要的朋友可以參考下
    2017-02-02
  • Android TextView設(shè)置背景色與邊框的方法詳解

    Android TextView設(shè)置背景色與邊框的方法詳解

    本篇文章是對Android中TextView設(shè)置背景色與邊框的方法進行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-06-06
  • Android屏幕適配工具類 Android自動生成不同分辨率的值

    Android屏幕適配工具類 Android自動生成不同分辨率的值

    這篇文章主要為大家詳細(xì)介紹了Android屏幕適配工具類,Android自動生成不同分辨率的值,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-03-03
  • Android實現(xiàn)離線緩存的方法

    Android實現(xiàn)離線緩存的方法

    離線緩存就是在網(wǎng)絡(luò)暢通的情況下將從服務(wù)器收到的數(shù)據(jù)保存到本地,當(dāng)網(wǎng)絡(luò)斷開之后直接讀取本地文件中的數(shù)據(jù)。本文給大家介紹Android實現(xiàn)離線緩存的方法,需要的朋友參考下
    2016-03-03
  • Android 6.0指紋識別App開發(fā)案例

    Android 6.0指紋識別App開發(fā)案例

    這篇文章主要為大家詳細(xì)介紹了Android 6.0 指紋識別App開發(fā)案例,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-09-09

最新評論

洛扎县| 津南区| 南京市| 诏安县| 贵阳市| 西昌市| 常德市| 彭州市| 荆门市| 古交市| 南郑县| 兴安县| 新邵县| 正镶白旗| 桂平市| 涪陵区| 衡东县| 长春市| 堆龙德庆县| 稻城县| 天峨县| 唐海县| 天门市| 沁水县| 郯城县| 乌海市| 梁山县| 黎城县| 延吉市| 定兴县| 舒城县| 元阳县| 巴林右旗| 福建省| 子长县| 丹阳市| 郯城县| 桂东县| 皋兰县| 谢通门县| 德安县|