色偷偷精品伊人,欧洲久久精品,欧美综合婷婷骚逼,国产AV主播,国产最新探花在线,九色在线视频一区,伊人大交九 欧美,1769亚洲,黄色成人av

240 發(fā)簡(jiǎn)信
IP屬地:廣東
  • native函數(shù)沒(méi)有指針數(shù)組哦,我看了一下android Q里邊的實(shí)現(xiàn),在注冊(cè)native函數(shù)的時(shí)候,通過(guò)反射獲取到j(luò)ava方法地址后,直接將native 函數(shù)的地址,寫(xiě)入到 對(duì)應(yīng)java 方法地址開(kāi)始往后的4個(gè)字節(jié)或8個(gè)字節(jié)的內(nèi)存空間里邊。
    具體實(shí)現(xiàn)在: android/art/runtime/art_method.h
    template<typename T>
    ALWAYS_INLINE void SetNativePointer(MemberOffset offset, T new_value, PointerSize pointer_size) {
    static_assert(std::is_pointer<T>::value, "T must be a pointer type");
    const auto addr = reinterpret_cast<uintptr_t>(this) + offset.Uint32Value();
    ///這邊將native函數(shù)地址進(jìn)行寫(xiě)入哦
    if (pointer_size == PointerSize::k32) {
    uintptr_t ptr = reinterpret_cast<uintptr_t>(new_value);
    *reinterpret_cast<uint32_t*>(addr) = dchecked_integral_cast<uint32_t>(ptr);
    } else {
    *reinterpret_cast<uint64_t*>(addr) = reinterpret_cast<uintptr_t>(new_value);
    }
    }

    大致調(diào)用棧為:
    SetNativePointer()
    SetDataPtrSize()
    SetEntryPointFromJniPtrSize()
    SetEntryPointFromJni()
    RegisterNative()
    RegisterNatives()
    jniRegisterNativeMethods()
    registerNativeMethods()
    RegisterMethodsOrDie()

    Android JNI(一)——NDK與JNI基礎(chǔ)

    本系列文章如下: Android JNI(一)——NDK與JNI基礎(chǔ)Android JNI學(xué)習(xí)(二)——實(shí)戰(zhàn)JNI之“hello world”Android JNI學(xué)習(xí)(三)...

凌海市| 中西区| 正蓝旗| 松潘县| 馆陶县| 乌恰县| 宁城县| 娄烦县| 宜君县| 云梦县| 行唐县| 楚雄市| 兖州市| 东丽区| 宜都市| 信阳市| 磐安县| 阿克陶县| 新安县| 昔阳县| 乐业县| 横山县| 东城区| 辽阳县| 龙江县| 新巴尔虎左旗| 阜阳市| 广丰县| 太湖县| 肇州县| 车致| 富平县| 乡城县| 汝南县| 鹤山市| 敖汉旗| 深圳市| 木里| 南昌县| 罗平县| 民丰县|