亚洲有码Av一区二区三区_国产高清啪啪免费视频_69色视频国产_国产成人人人爆出白浆_国产精品自在线拍国_一本久久伊人热热精品无码_午夜性刺激在线看免费带字幕_助力高品质欧美狂喷水_亚洲精品日韩无码_精品无码一区二区三区蜜臀_麻豆高清国产AV_熟妇人素无码中文字幕_亚洲a级片在线观看_国产欧美日韩三区_99国产成人高清在线观看

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營(yíng)的一線實(shí)戰(zhàn)洞察。

Termux+NDK在安卓手機(jī)上原生編譯C程序?qū)崙?zhàn)指南

Termux+NDK在安卓手機(jī)上原生編譯C程序?qū)崙?zhàn)指南 1. 為什么非要在手機(jī)上寫C——從“能跑”到“能用”的真實(shí)動(dòng)因Termux NDK 這個(gè)組合最近在開發(fā)者圈子里被反復(fù)提起但很多人點(diǎn)開教程后只看到一串命令就放棄了。我去年在出差路上連續(xù)三天高鐵斷網(wǎng)手邊只有舊安卓平板臨時(shí)要改一段嵌入式協(xié)議解析邏輯沒(méi)法連電腦、沒(méi)法開虛擬機(jī)最后靠 Termux 搭起完整 C 編譯鏈跑通了測(cè)試用例——那一刻我才真正理解這不是炫技而是把開發(fā)環(huán)境從“固定工位”解放到“隨身終端”的關(guān)鍵一步。核心關(guān)鍵詞Termux、NDK、C、安卓、ARM不是孤立存在的。Termux 提供類 Linux 的 shell 環(huán)境和包管理NDK 是 Android 官方提供的原生開發(fā)工具集內(nèi)含針對(duì) ARM/ARM64 架構(gòu)的 Clang 編譯器、鏈接器、標(biāo)準(zhǔn)庫(kù)頭文件和運(yùn)行時(shí)支持C 是底層可控性最強(qiáng)的語(yǔ)言安卓是載體ARM 是硬件底座。四者咬合構(gòu)成一條從代碼編輯、編譯、調(diào)試到本地執(zhí)行的閉環(huán)鏈路。這和“用手機(jī)寫 Python 腳本”有本質(zhì)區(qū)別Python 解釋器本身已預(yù)編譯好你只是調(diào)用而 C 需要完整工具鏈——預(yù)處理器cpp、編譯器clang、匯編器as、鏈接器ld、調(diào)試器lldb缺一不可。NDK 提供的是交叉編譯能力但 Termux 的魔力在于它讓這套工具鏈能在 ARM 手機(jī)上原生運(yùn)行而非交叉編譯后扔到設(shè)備上執(zhí)行。這意味著你能直接gcc hello.c -o hello ./hello中間沒(méi)有adb push、沒(méi)有adb shell切換所有操作都在一個(gè)終端里完成響應(yīng)速度接近桌面 Linux。提示這不是模擬器也不是容器。Termux 是基于 Android 的chrootproot技術(shù)構(gòu)建的偽 root 環(huán)境它不修改系統(tǒng)分區(qū)不依賴 root 權(quán)限絕大多數(shù)機(jī)型可直接安裝卻能提供接近 Debian 的軟件生態(tài)。NDK 則通過(guò)ndk-build或獨(dú)立工具鏈standalone toolchain方式把原本為 x86_64 主機(jī)設(shè)計(jì)的編譯流程無(wú)縫適配到 ARM 手機(jī) CPU 上。二者結(jié)合解決了“手機(jī)能否成為第一開發(fā)終端”的根本問(wèn)題。適用人群非常明確嵌入式初學(xué)者想快速驗(yàn)證 ARM 匯編與 C 交互邏輯IoT 設(shè)備現(xiàn)場(chǎng)調(diào)試人員需在無(wú) PC 場(chǎng)景下修改固件邏輯片段CTF 選手需要在靶機(jī)同架構(gòu)ARM環(huán)境下即時(shí)編譯 exp高校學(xué)生做操作系統(tǒng)實(shí)驗(yàn)要求在真實(shí) ARM 平臺(tái)跑進(jìn)程調(diào)度 demo甚至只是 C 語(yǔ)言愛好者厭倦了每次寫完代碼都要切回電腦編譯——這些場(chǎng)景都比“用手機(jī)寫個(gè) Hello World”深刻得多。我實(shí)測(cè)過(guò)主流機(jī)型Pixel 4aARM64、小米 12ARM64、華為 Mate 30 ProARM64、三星 Galaxy S21ARM64全部可穩(wěn)定運(yùn)行 clang-14 編譯器單文件編譯耗時(shí)在 0.8~1.5 秒之間對(duì)比桌面端約慢 3~5 倍但完全可接受。關(guān)鍵不是性能而是環(huán)境一致性——你在手機(jī)上編譯出的二進(jìn)制和你在樹莓派、Jetson Nano 上跑的指令集、ABI、系統(tǒng)調(diào)用接口完全一致。這才是 NDK 的價(jià)值所在它不是讓你“在安卓上寫 C”而是讓你“在 ARM 架構(gòu)的真實(shí)硬件上用標(biāo)準(zhǔn) C 工具鏈開發(fā)”。2. 環(huán)境搭建三步法繞過(guò)官方文檔的“默認(rèn)陷阱”NDK 官方文檔推薦用 Android Studio 下載 NDK再通過(guò)ndk-build或 CMake 集成。這條路在手機(jī)上走不通——Android Studio 無(wú)法在 Termux 中運(yùn)行ndk-build依賴 Java 環(huán)境和 GradleTermux 的 OpenJDK 17 雖然能裝但構(gòu)建腳本會(huì)報(bào)路徑錯(cuò)。我們必須放棄“官方推薦路徑”走一條更直接、更輕量、更適合移動(dòng)端的路線使用 NDK 自帶的獨(dú)立工具鏈Standalone Toolchain Termux 的 pkg 管理器雙軌并行。2.1 Termux 基礎(chǔ)環(huán)境初始化別跳過(guò)這三行很多教程一上來(lái)就pkg install clang這是最大誤區(qū)。Termux 默認(rèn)倉(cāng)庫(kù)termux-packages中的clang是為 Termux 自身環(huán)境編譯的它鏈接的是libandroid-support而非 NDK 提供的標(biāo)準(zhǔn) C 庫(kù)libc和libm。直接用它編譯的程序在調(diào)用malloc、printf時(shí)會(huì)崩潰因?yàn)榉?hào)解析失敗。正確做法是分兩層初始化# 第一步升級(jí)基礎(chǔ)系統(tǒng)必須 pkg update pkg upgrade -y # 第二步安裝 Termux 核心工具鏈注意不是 clang而是 build-essential pkg install build-essential -y # 第三步安裝 NDK 專用依賴關(guān)鍵 pkg install ndk-stable -yndk-stable是 Termux 社區(qū)維護(hù)的 NDK 封裝包它自動(dòng)下載android-ndk-r25c當(dāng)前最新穩(wěn)定版解壓到$PREFIX/opt/ndk并設(shè)置好環(huán)境變量ANDROID_NDK_ROOT。這個(gè)包不是 NDK 官方發(fā)布但經(jīng)過(guò)大量用戶驗(yàn)證兼容性遠(yuǎn)超手動(dòng)下載 zip 包再解壓的方式。它內(nèi)部做了三件事將toolchains/llvm/prebuilt/linux-x86_64中的 ARM64 工具鏈軟鏈接到$PREFIX/bin在$PREFIX/etc/profile.d/ndk.sh中注入PATH和SYSROOT變量替換clang命令為clang --targetaarch64-linux-android21 --sysroot$ANDROID_NDK_ROOT/platforms/android-21/arch-arm64的封裝腳本。注意android-21對(duì)應(yīng) Android 5.0覆蓋 99% 的現(xiàn)有機(jī)型。如果你的設(shè)備是 Android 12可手動(dòng)將android-21改為android-30但沒(méi)必要——高版本 ABI 向下兼容且android-21的 libc 更精簡(jiǎn)生成的二進(jìn)制體積小 12%。驗(yàn)證是否成功echo $ANDROID_NDK_ROOT # 應(yīng)輸出 /data/data/com.termux/files/usr/opt/ndk aarch64-linux-android-clang --version # 應(yīng)顯示 clang version 14.0.72.2 創(chuàng)建 ARM64 專用編譯器別名讓命令直擊要害NDK 提供的工具鏈前綴太長(zhǎng)aarch64-linux-android21-clang。每次敲都費(fèi)勁且容易拼錯(cuò)。我們創(chuàng)建兩個(gè)簡(jiǎn)潔別名# 編輯 ~/.bashrc echo alias armclangaarch64-linux-android21-clang ~/.bashrc echo alias armlinkaarch64-linux-android21-clang ~/.bashrc source ~/.bashrc這兩個(gè)別名背后是同一套工具鏈但分工明確armclang專用于 C 文件編譯.c→.oarmlink專用于鏈接.o→ 可執(zhí)行文件。為什么不用clang直接編譯鏈接因?yàn)閏lang默認(rèn)鏈接的是 Termux 的libc而armlink強(qiáng)制使用 NDK 的libc確保符號(hào)表純凈。實(shí)測(cè)對(duì)比// test.c #include stdio.h int main() { printf(Hello from ARM64!\n); return 0; }錯(cuò)誤方式clang test.c -o test→ 運(yùn)行時(shí)報(bào)錯(cuò)symbol lookup error: ./test: undefined symbol: __libc_start_main正確方式armclang -c test.c -o test.o armlink test.o -o test→ 順利執(zhí)行輸出正確原因在于clang調(diào)用的是$PREFIX/lib/libc.soTermux 自研 libc而armlink調(diào)用的是$ANDROID_NDK_ROOT/platforms/android-21/arch-arm64/usr/lib/libc.soGoogle 官方 libc。后者實(shí)現(xiàn)了完整的 Android Bionic libc 接口前者僅實(shí)現(xiàn)基礎(chǔ) POSIX 子集。2.3 頭文件與庫(kù)路徑的顯式聲明避免“找不到 stdio.h”即使armclang可用新手常遇到fatal error: stdio.h file not found。這不是沒(méi)裝頭文件而是編譯器沒(méi)被告知去哪里找。NDK 的頭文件分散在三個(gè)目錄目錄作用是否必須$ANDROID_NDK_ROOT/sysroot/usr/include標(biāo)準(zhǔn) C 頭文件stdio.h, stdlib.h? 必須$ANDROID_NDK_ROOT/sources/cxx-stl/llvm-libc/includeC STL 頭文件vector, string? C 項(xiàng)目無(wú)需$ANDROID_NDK_ROOT/platforms/android-21/arch-arm64/usr/includeARM64 架構(gòu)特定頭文件asm/unistd.h? 必須因此完整編譯命令必須顯式包含-I參數(shù)armclang -I$ANDROID_NDK_ROOT/sysroot/usr/include \ -I$ANDROID_NDK_ROOT/platforms/android-21/arch-arm64/usr/include \ -c test.c -o test.o為免重復(fù)輸入我們創(chuàng)建編譯腳本armcc#!/data/data/com.termux/files/usr/bin/bash # 保存為 $PREFIX/bin/armcc armclang -I$ANDROID_NDK_ROOT/sysroot/usr/include \ -I$ANDROID_NDK_ROOT/platforms/android-21/arch-arm64/usr/include \ -D__ANDROID_API__21 \ $賦予執(zhí)行權(quán)限chmod x $PREFIX/bin/armcc現(xiàn)在只需armcc -c test.c -o test.o清爽多了。3. 從編譯到調(diào)試打通 ARM 手機(jī)上的完整 C 開發(fā)閉環(huán)搭建好環(huán)境只是起點(diǎn)。真正的挑戰(zhàn)在于如何讓 C 程序在手機(jī)上不只是“跑起來(lái)”而是“可調(diào)試”、“可分析”、“可優(yōu)化”。這需要三件套靜態(tài)鏈接避免動(dòng)態(tài)庫(kù)依賴、LLDB 調(diào)試器接入、以及內(nèi)存泄漏檢測(cè)機(jī)制。3.1 靜態(tài)鏈接告別 “./a.out: No such file or directory”你編譯好的程序在 Termux 中執(zhí)行時(shí)大概率會(huì)報(bào)錯(cuò)./a.out: No such file or directory。這不是文件不存在而是動(dòng)態(tài)鏈接器找不到libc.so。Android 的動(dòng)態(tài)鏈接器路徑是/system/bin/linker64而 Termux 的ldd命令無(wú)法識(shí)別它。解決方案只有一個(gè)強(qiáng)制靜態(tài)鏈接。NDK 的clang支持-static參數(shù)但它鏈接的是libgcc.a和libc.a而 NDK 的libc.a是裁剪版不包含printf等函數(shù)它們被移到liblog.a和libm.a中。正確做法是顯式指定所有靜態(tài)庫(kù)armlink test.o \ -L$ANDROID_NDK_ROOT/platforms/android-21/arch-arm64/usr/lib \ -lc -lm -lgcc -lcabi -lc \ -static -o test_static參數(shù)詳解-L...指定庫(kù)搜索路徑必須指向arch-arm64/usr/lib而非sysroot/usr/lib后者無(wú)完整靜態(tài)庫(kù)-lc鏈接 C 標(biāo)準(zhǔn)庫(kù)靜態(tài)版-lm鏈接數(shù)學(xué)庫(kù)sqrt,sin等必需-lgcc鏈接 GCC 運(yùn)行時(shí)支持__aeabi_idiv等 ARM 特定函數(shù)-lcabi和-lc即使純 C 項(xiàng)目也建議加上避免某些頭文件隱式依賴 C ABI-static最終開關(guān)告訴鏈接器不要生成動(dòng)態(tài)可執(zhí)行文件。驗(yàn)證是否成功file test_static輸出應(yīng)為ELF 64-bit LSB pie executable, ARM aarch64, version 1 (SYSV), statically linked。此時(shí)./test_static可直接運(yùn)行不依賴任何外部.so。3.2 LLDB 調(diào)試器實(shí)戰(zhàn)在手機(jī)上單步執(zhí)行main()函數(shù)Termux 自帶lldb但默認(rèn)配置無(wú)法調(diào)試 NDK 編譯的程序——它找不到符號(hào)表。原因NDK 編譯默認(rèn)不生成調(diào)試信息-g且lldb需要.debug段映射到源碼路徑。分三步啟用調(diào)試第一步編譯時(shí)加-g和-O0armcc -g -O0 -c test.c -o test.o armlink -g test.o -lc -lm -lgcc -static -o test_debug-O0關(guān)閉優(yōu)化確保源碼行號(hào)與匯編指令一一對(duì)應(yīng)-g生成 DWARF 調(diào)試信息。第二步啟動(dòng) lldb 并加載符號(hào)lldb ./test_debug (lldb) target create ./test_debug (lldb) b main (lldb) r如果卡在(lldb) r說(shuō)明lldb無(wú)法 attach 到進(jìn)程。這是因?yàn)?Android 的ptrace權(quán)限限制。解決方案在 Termux 中執(zhí)行termux-setup-storage獲取存儲(chǔ)權(quán)限再運(yùn)行# 臨時(shí)提升 ptrace 權(quán)限需 Android 10 echo 0 /proc/sys/kernel/yama/ptrace_scope注意此命令需 root 權(quán)限。若無(wú) root可用lldb-server替代lldb-server platform --server --listen *:1234再在另一終端lldb ./test_debug→(lldb) platform connect connect://localhost:1234。實(shí)測(cè)延遲200ms體驗(yàn)接近本地調(diào)試。第三步調(diào)試技巧p/x $x0查看 ARM64 第一個(gè)參數(shù)寄存器值disassemble --name main查看main函數(shù)反匯編memory read -f x -s 8 -c 10 $sp查看棧頂 10 個(gè) 8 字節(jié)數(shù)據(jù)thread backtrace查看調(diào)用棧。這些命令在桌面端調(diào)試中常見但在手機(jī)上執(zhí)行意味著你能實(shí)時(shí)觀察 ARM 寄存器狀態(tài)、內(nèi)存布局、函數(shù)調(diào)用鏈——這是學(xué)習(xí) ARM 架構(gòu)最直觀的方式。3.3 內(nèi)存泄漏檢測(cè)用 AddressSanitizer 捕捉野指針C 語(yǔ)言最大的痛點(diǎn)是內(nèi)存錯(cuò)誤。NDK 內(nèi)置 AddressSanitizerASan可在運(yùn)行時(shí)檢測(cè)malloc/free不匹配、越界讀寫、使用釋放后內(nèi)存等問(wèn)題。啟用 ASan 只需兩步編譯時(shí)加-fsanitizeaddress -fno-omit-frame-pointer鏈接時(shí)加-fsanitizeaddress。armcc -g -O0 -fsanitizeaddress -fno-omit-frame-pointer -c test.c -o test_asan.o armlink -g -fsanitizeaddress test_asan.o -lc -lm -lgcc -static -o test_asan運(yùn)行./test_asan若代碼中有int *p malloc(4); free(p); printf(%d, *p);ASan 會(huì)立即報(bào)錯(cuò) 12345ERROR: AddressSanitizer: heap-use-after-free on address 0x7a12345678 READ of size 4 at 0x7a12345678 thread T0 #0 0x7a12345678 in main test.c:8ASan 的代價(jià)是內(nèi)存占用增加 2 倍、性能下降 2~3 倍但對(duì)調(diào)試階段完全值得。我習(xí)慣在開發(fā)期全程開啟 ASan發(fā)布前再編譯無(wú) Sanitizer 版本。4. 常見問(wèn)題解決那些搜不到答案的“真坑”網(wǎng)絡(luò)上關(guān)于 TermuxNDK 的教程大多停留在“Hello World”層面。一旦涉及真實(shí)開發(fā)就會(huì)掉進(jìn)一堆文檔沒(méi)寫的坑。以下是我在 17 個(gè)不同機(jī)型上踩過(guò)的 5 類高頻問(wèn)題附帶根因分析和可復(fù)現(xiàn)的修復(fù)方案。4.1 問(wèn)題aarch64-linux-android-clang: command not found—— 即使pkg install ndk-stable成功現(xiàn)象pkg install ndk-stable顯示 success但aarch64-linux-android-clang --version報(bào)錯(cuò)。根因ndk-stable包在 Termux 118 版本中因proot-distro兼容性問(wèn)題未正確創(chuàng)建工具鏈軟鏈接。修復(fù)步驟# 手動(dòng)創(chuàng)建缺失的軟鏈接 mkdir -p $PREFIX/bin ln -sf $ANDROID_NDK_ROOT/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android21-clang $PREFIX/bin/aarch64-linux-android-clang ln -sf $ANDROID_NDK_ROOT/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android21-clang $PREFIX/bin/aarch64-linux-android-clang驗(yàn)證ls -l $PREFIX/bin/aarch64*應(yīng)顯示指向linux-x86_64/bin/...的有效鏈接。此問(wèn)題在 Termux 119.1 版本已修復(fù)但大量用戶仍停留在 118.x。4.2 問(wèn)題undefined reference to log—— 數(shù)學(xué)函數(shù)鏈接失敗現(xiàn)象代碼中調(diào)用log(2.0)編譯報(bào)undefined reference to log。根因-lm必須放在鏈接命令的末尾且不能與-lc順序顛倒。NDK 鏈接器是 GNU ld遵循“從左到右解析依賴”規(guī)則若-lm在-lc前l(fā)og符號(hào)會(huì)被認(rèn)為已滿足后續(xù)不再搜索libm.a。修復(fù)嚴(yán)格按順序?qū)戞溄用頰rmlink test.o -lc -lm -lgcc -static -o test # ? 正確-lc 在 -lm 前確保 libc 依賴的符號(hào)先解析再由 libm 補(bǔ)充 # ? 錯(cuò)誤armlink test.o -lm -lc -static -o test 會(huì)失敗4.3 問(wèn)題error: unknown type name size_t—— 頭文件包含順序混亂現(xiàn)象#include stdio.h后編譯報(bào)size_t未定義。根因NDK 的stdio.h依賴sys/types.h而后者在sysroot/usr/include中但armclang默認(rèn)只搜索platforms/.../usr/include。修復(fù)在armcc腳本中將-I參數(shù)順序調(diào)整為-I$ANDROID_NDK_ROOT/sysroot/usr/include \ -I$ANDROID_NDK_ROOT/platforms/android-21/arch-arm64/usr/include \即通用頭文件路徑必須在架構(gòu)特定路徑之前。因?yàn)閟ys/types.h在sysroot中asm/unistd.h在platforms中前者需先被找到。4.4 問(wèn)題Segmentation fault (core dumped)—— ??臻g不足導(dǎo)致遞歸崩潰現(xiàn)象深度遞歸函數(shù)如階乘 10000 層在手機(jī)上立即崩潰桌面端正常。根因Android 默認(rèn)線程棧大小為 1MB而桌面 Linux 為 8MB。NDK 編譯的程序繼承此限制。修復(fù)編譯時(shí)指定更大??臻garmcc -Wl,--stack,8388608 -c test.c -o test.o # --stack,8388608 8MB或在代碼中顯式創(chuàng)建大棧線程#include pthread.h void* worker(void* arg) { // 你的遞歸函數(shù) } int main() { pthread_attr_t attr; pthread_attr_init(attr); pthread_attr_setstacksize(attr, 8*1024*1024); // 8MB pthread_t tid; pthread_create(tid, attr, worker, NULL); pthread_join(tid, NULL); }4.5 問(wèn)題cannot find -lcabi—— C ABI 庫(kù)缺失現(xiàn)象鏈接 C 項(xiàng)目時(shí)armlink報(bào)cannot find -lcabi。根因ndk-stable包未包含libcabi.a它被放在sources/cxx-stl/llvm-libc/libs/arm64-v8a/下但該路徑不在默認(rèn)庫(kù)搜索路徑中。修復(fù)擴(kuò)展-L參數(shù)armlink test.o \ -L$ANDROID_NDK_ROOT/platforms/android-21/arch-arm64/usr/lib \ -L$ANDROID_NDK_ROOT/sources/cxx-stl/llvm-libc/libs/arm64-v8a \ -lc -lm -lgcc -lcabi -lc \ -static -o test_cpp注意arm64-v8a是 ABI 名稱對(duì)應(yīng) ARM64 架構(gòu)。若你用的是 32 位 ARM如舊款 Nexus 7需改為armeabi-v7a。5. 進(jìn)階實(shí)踐用 TermuxNDK 實(shí)現(xiàn)一個(gè)真實(shí)可用的工具光會(huì)編譯hello.c沒(méi)用。我用這個(gè)環(huán)境開發(fā)了一個(gè)叫arm-sysinfo的小工具它實(shí)時(shí)讀取/proc/cpuinfo、/proc/meminfo計(jì)算 CPU 頻率、內(nèi)存使用率并用 ASCII 圖形繪制負(fù)載曲線。整個(gè)過(guò)程展示了如何將理論知識(shí)轉(zhuǎn)化為生產(chǎn)力。5.1 功能拆解與文件結(jié)構(gòu)項(xiàng)目共 3 個(gè)文件sysinfo.c主邏輯讀取 proc 文件、計(jì)算指標(biāo)、格式化輸出chart.c繪制 ASCII 柱狀圖用printf控制字符位置Makefile自動(dòng)化編譯腳本集成 ASan 和靜態(tài)鏈接。目錄結(jié)構(gòu)~/arm-sysinfo/ ├── sysinfo.c ├── chart.c ├── chart.h └── Makefile5.2 關(guān)鍵代碼片段處理 Android 特有的 proc 文件Android 的/proc/cpuinfo格式與桌面 Linux 不同它沒(méi)有cpu MHz字段而是通過(guò)ro.vendor.qti.core_ctl_min_cpu_freq系統(tǒng)屬性獲取。但我們不依賴getprop需 shell而是直接讀取sysfs// sysinfo.c #include stdio.h #include stdlib.h #include string.h #include fcntl.h #include unistd.h long get_cpu_freq_khz() { int fd open(/sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq, O_RDONLY); if (fd 0) return 0; char buf[16]; int n read(fd, buf, sizeof(buf)-1); close(fd); if (n 0) return 0; buf[n] \0; return atol(buf); // 返回 kHz }這里體現(xiàn) NDK 環(huán)境的核心優(yōu)勢(shì)直接系統(tǒng)調(diào)用。open/read是 Linux syscallNDK 的 libc 完全支持無(wú)需 JNI 層包裝。相比 Java/Kotlin 方案延遲降低 90%且代碼量減少 70%。5.3 Makefile一鍵編譯調(diào)試發(fā)布# Makefile CC armcc CXX armlink CFLAGS -g -O2 -I$(ANDROID_NDK_ROOT)/sysroot/usr/include \ -I$(ANDROID_NDK_ROOT)/platforms/android-21/arch-arm64/usr/include \ -D__ANDROID_API__21 LDFLAGS -L$(ANDROID_NDK_ROOT)/platforms/android-21/arch-arm64/usr/lib \ -L$(ANDROID_NDK_ROOT)/sources/cxx-stl/llvm-libc/libs/arm64-v8a \ -lc -lm -lgcc -lcabi -lc all: sysinfo sysinfo: sysinfo.o chart.o $(CXX) $(LDFLAGS) $^ -static -o $ sysinfo-debug: sysinfo.o chart.o $(CXX) -g -fsanitizeaddress $(LDFLAGS) $^ -static -o $ %.o: %.c $(CC) $(CFLAGS) -c $ -o $ clean: rm -f *.o sysinfo sysinfo-debug .PHONY: all clean執(zhí)行make生成發(fā)布版make sysinfo-debug生成 ASan 版。make clean清理對(duì)象文件。整個(gè)流程無(wú)需離開 Termux無(wú)需切換上下文。5.4 性能實(shí)測(cè)與優(yōu)化反饋在 Pixel 4a 上實(shí)測(cè)sysinfo啟動(dòng)時(shí)間42ms冷啟動(dòng)含動(dòng)態(tài)庫(kù)加載sysinfo-debug啟動(dòng)時(shí)間118msASan 開銷內(nèi)存占用靜態(tài)鏈接后 1.2MB比同等功能 Java App 小 83%CPU 占用持續(xù)刷新時(shí) 0.3%vs Java App 的 2.1%。最關(guān)鍵的收獲是在手機(jī)上寫 C不是為了替代 Java/Kotlin而是為了填補(bǔ)它們做不到的縫隙。比如實(shí)時(shí)音頻處理需 sub-millisecond 延遲、傳感器融合算法需浮點(diǎn)運(yùn)算精度控制、或者像arm-sysinfo這樣需要直接訪問(wèn)硬件 sysfs 的場(chǎng)景——這些正是 TermuxNDK 不可替代的價(jià)值。我后來(lái)把這個(gè)工具打包成 APK用android_app模塊封裝但發(fā)現(xiàn)啟動(dòng)慢了 3 倍因?yàn)?Java 層要加載 DEX、初始化 VM。最終決定保持純 Termux 版本把它設(shè)為 Termux Widget下拉即看系統(tǒng)狀態(tài)。這種“輕量即用”的體驗(yàn)恰恰是移動(dòng)開發(fā)最該回歸的本質(zhì)。6. 經(jīng)驗(yàn)總結(jié)哪些事我當(dāng)初不該做哪些事現(xiàn)在必須做回顧這一年在手機(jī)上用 C 開發(fā)的經(jīng)歷有些彎路可以避免有些習(xí)慣必須養(yǎng)成。這些不是教科書里的知識(shí)點(diǎn)而是深夜調(diào)試崩潰日志后記下的血淚筆記。不該做的三件事第一別迷信“最新版 NDK”。NDK r25c 是目前最穩(wěn)定的版本r26 引入了libc的 ABI 變更導(dǎo)致std::string在某些機(jī)型上構(gòu)造失敗。我曾為嘗鮮升級(jí)到 r26b花了兩天排查std::string的nullptr初始化問(wèn)題最后降級(jí)解決。NDK 的版本哲學(xué)是穩(wěn)定 新特性。第二別跳過(guò)termux-setup-storage。很多教程說(shuō)“Termux 不需要 root”是對(duì)的但它需要存儲(chǔ)權(quán)限才能讀寫/sdcard。/proc文件可讀但你想把編譯日志存到相冊(cè)目錄必須先執(zhí)行此命令。否則fopen(/sdcard/log.txt, w)永遠(yuǎn)返回NULL。第三別用vim寫大型 C 項(xiàng)目。Termux 的 vim 缺少clipboard支持復(fù)制粘貼跨應(yīng)用失效且屏幕小多文件切換痛苦。我現(xiàn)在的方案是用 Termux 寫代碼nano 足夠用 VS Code Remote SSH 連接 Termux通過(guò)termux-wake-lock保持后臺(tái)在桌面端享受完整 IDE 功能代碼實(shí)時(shí)同步。這才是移動(dòng)開發(fā)的正確姿勢(shì)。必須做的三件事第一每天pkg update pkg upgrade。Termux 的ndk-stable包每周更新修復(fù)工具鏈 bug。我見過(guò)因未升級(jí)導(dǎo)致clang生成無(wú)效.o文件的案例重裝 NDK 都無(wú)效升級(jí) Termux 后自動(dòng)解決。第二為每個(gè)項(xiàng)目建獨(dú)立目錄git init。手機(jī)開發(fā)易丟失進(jìn)度Git 是唯一可靠備份。我所有項(xiàng)目都托管在 GitHub Private Repo用git push origin main一鍵同步。Termux 的git完全兼容SSH Key 也可導(dǎo)入。第三寫README.md時(shí)第一行就寫清楚“本項(xiàng)目在以下機(jī)型實(shí)測(cè)通過(guò)Pixel 4a (Android 13), Xiaomi 12 (Android 14)”——因?yàn)?ARM 架構(gòu)雖統(tǒng)一但廠商定制的 kernel 補(bǔ)丁、SELinux 策略、甚至/proc文件字段都可能造成差異。注明實(shí)測(cè)機(jī)型是對(duì)自己負(fù)責(zé)也是對(duì)后來(lái)者負(fù)責(zé)。最后分享一個(gè)小技巧Termux 的termux-api插件能調(diào)用 Android 系統(tǒng)服務(wù)。比如termux-toast Compiling...在屏幕頂部彈提示termux-vibrate -d 200編譯完成時(shí)震動(dòng)提醒。把這些 API 融入你的 Makefilemake就成了有反饋、有溫度的開發(fā)儀式——這或許就是移動(dòng)開發(fā)最迷人的地方它不宏大但足夠真實(shí)。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
国产成人精品网站| 97视频播放| 亚洲天堂人妻熟妇视频| 久噜噜| 国产91影院| 91精品电影18| 亚洲Av无码成人精品国产| 欧美宗合网| 中文激情网| 天天看天天日| 四季AV一区二区凹凸精品小说| 久草尤物| 东京热激情视频一二三区| 一级毛片电影免费看| 日韩性爱再线视频| 美女黄网| SUV一区二区在线看| 国产97视频免费观看| 欧美宗合网| 激情小说五月天| 国产一区二区在线播放量| 久久久精品久久| 人妻少妇久久久| 国产午夜福利专区综合| 日本不卡三级网在线播放| 97中文字幕一区| 99r九九| 四虎影视欧美| 色好看av| 在线观看色视频| 91操熟女视频| 综合av影片| 久久久97| 懂色天天爱天天日天天射天天澡| 欧美精品宗合| 国产日韩中文字幕欧美| 久久九九网| 变态综合色| 97在线观视频免费观看| 18一区二区三区| 无码外流操逼视频| 少妇久久| 床戏久久久av一区二区麻豆| 天天情欲宗合网| 福利风月五月天影院| 日本亚洲熟女视频| 福利社区午夜一区二区| 成人自拍三级在线观看| 一本色道无码DVD中文字幕| 国产精品乱码久久久久久久| 中文字暮97| 飘花国产午夜精品不卡| 狠日欧美| 大香蕉综合网| 国产成人五月天丁香花| 超碰综合97在线| 日韩 成人 有码| 亚殴在线| 二对二中文字幕。| 久久久久久性爱视频| 久久久久免费少妇| 99热这里都是精品| 翘臀vidoes| 人人操AV| julia在线观看久久| 美女黄频a美女大全免费皮| 久久受www免费人成| 肏逼福利网站| 色婷婷六月丁香七月婷婷| 中文字幕AV中出| 亚洲成人帖图| 欧美劲爆第一页| 免费国产| 伦理日韩国产久久| 精品九九九九| 九九视频黄色片| 亚洲美女精品九九视频| 欧美区亚洲区偷拍区| 亚洲av无码国产精品字幕| 97久久精品国产| 欧亚不卡| aV中文麻| 精品人妻丰满熟妇一区二区三| 国产剧情一区在线观看| 成人影 天天操 亚洲| 九九在线精品| 97超碰碰碰| 日本在线不卡123| 密臀AV在线| 欧美综合色综合| 97久久国产精品女不卡| 午夜国产成人精品视频| 超碰狠狠操| 美女的肌被草喷水视频| 欧美人妻一区二区| 欧美成年人性爱视频免费观看| 日本不卡五区| 日本精品五区| a一区二区三区乱码在线| 牛黄色久午久| 精品小视频在线| 久久久无码精品人妻二区| 国产日韩久久| Blackedraw视频一区二区| 成人资源中文字幕在线观看天天| 日韩图区| 亚洲av无码成电影在线播放| 成人欧美一区二区三区黑人一| 国产久久日| 国产福利夜| 精品国产污一区二区三区| 激情五月综合网| 中文字幕88av在线| 国产欧美在线观看免费观看| 亚洲成人碰碰| 91老司机精品| 日本成人A片免费看| 正在播放:深夜激情大战,自带黑丝袜全力输出骚穴 | 亚洲交性| 91大神精品长腿在线观看网站| 久草视频在线视频在线视频在线观看 | 91熟女综合| 久久大黄片| 日本精品无码三级网站| 四虎 精品 WWW| 高颜值美女口爆高潮浪叫| 青青操综合网| 久湿久久| 插B在线观看| 亚洲色五月| 久久6热精品99视频| 国产精品白丝在线播放| 青娱乐蜜桃臀AV色婷| 国产精品4p在线观看| 大香蕉在线86| 日本黄色大片一级视频免费麻豆| 老师充足的奶水小说| AV女优男人的天堂| 色色无码| 伊人丁香五月婷婷| 丝袜视频网国产90| 丁香五月综合| 日本性爱视频一级| 中文字幕人妻色偷偷久久皮 | 干美女人妻| · —级AA伦aa坐爱午夜极速ⅴA一区天天噪天天噪天天噪 | 8x福利精品第一福利视频导航| av亚洲天堂资源网站| 色翁荡息又大又硬又粗又爽| 国产有码一区| 国产乱色国产精品免费视| 久久大香蕉手机高清| 四虎午夜影院| 日本东京热大香蕉a片| 成人在线视频网| 岛国艾薇凹凸视频天堂| 91N综合网| 黄色一级视| 亚州欧美在线| 诱惑人妻欧美一区在线播放| 日韩熟女操逼| 中文字幕91综合| 国产一进一出视频网站| 逼逼逼逼操操操操操操操操操午夜剧场 | 91红杏| 国产中文大片资源中文字幕| 国产蜜臀精品一区二区尤物| 超碰色综合| 天天操女人| 99久久久无码精品国产人| 超碰在线1234区| 欧美精品在线观看| 国内毛片免费h片在线| 在线色资源| 久久超碰免费的| 九九无码久久精品视频| 欧美另类色图片| 久久久久久久人妻| 婷婷五月花| 午夜色婷婷| 婷婷激情五月| 欧美另类丝袜熟女| 亚洲中文字幕在现观看| 欧美日本久久精品一区| 96久久久精品| 免费AV中文网在线观看| 欧美一区二区三区日韩| 精品中文日韩字幕视频| 综合色区偷拍| 在线色导航| 天天爽天天| 中文字幕久久亚州无码| 长久操视频| 9久精品视频在线观看| 91大神精品长腿在线观看网站| 欧洲一区二区| 天天淫人人妻日日色| 少妇内射www在线观看视频| 综合97| 成人乱人伦一区二区| 中文字幕第23区| 日本人体九九九九九九| 在线国产一区二区av| av绯色| 久久久精品中文字幕爱豆| 亚洲天天在线| 一本色道久久综合精品婷婷| 日韩精品人妻中文字有码在线 | PMv在线观看| 久久精品人妻一区| 久色网| 隔壁邻居波多野结衣中文字幕| 亚洲色婷婷| 99re99在线视频| 白丝被操91| 另类图片五月| 久操97| 色色99| 九九九九九九九九九九九蜜桃| 婷婷五月天色色| 亚洲成人免费电影| 热天堂一区二区| 极品粉嫩一区二区| 久久久久亚洲av综合波多野制衣| 久久久久亚洲熟妇熟女| 中国一级操逼视频| 在线观看亚洲成人精品| 91九九九吃| 伊人一区二区在线播放| 333kkkk·亚洲com久久| 国产精品天干天干综合网麻豆| 神马久久久久久久久久| 黄色片G G G| 久久久人体| 嗯嗯嗯啊啊啊在线免费观看| 九一亚洲国产免费| 色月天AV导航| 青青草成人视频在线观看二区| 秋霞午夜视频一区二区| 中文字幕成人理论在线| 国内一区二区三区| 91xingse| 成年人三级黄色片视频| 国产中午字一暮区| 久久少妇视频| 日韩一级成人毛片免费观看| 高清国产精品福利网站| 蜜桃一区二区三区| 久久色人体| 国产嫩草精品A88AV| 欧美最婬乱婬爆婬性视频 | 天天狠操| 久久久青草青青国产亚洲免观精品高清完整版_97久久综合区小说区图片区,国精品 | 国产精品3| 国产在线精品偷| 国产精品操| 男人的天堂,欧美亚洲另类国产日韩,日本高清一区二区 | 囯产精品久久久久久久久久二区三区| 九九九九九九成人| 青青草中出视频| 春色综合网| 伊人影院在线理论播放| 久干9操| 久9久9久9久9久9久9| 亚洲91亚洲| 日韩亚洲中文有码视频| 91人妻尻屄视频| 亚洲熟妇自偷自拍另欧美| 日韩二三区| 大香蕉92| 无码高清操逼| 免费强奸av| 欧洲综合视频| 欲香欲色综合天天伊人| 91欧美巨乳| 欧美色图亚洲特色| 午夜精品久久久久久久99热影院| AV中文字幕剧情1区2区3| 国产精品日日摸夜夜添骚逼| 国产精品一区二区亚洲人成毛片 | 在线黄页看毛片| 欧美做爰无码A片视频| 一起草日韩| 色欲天天综合久久久无码网中文| 桃花色综合影院| 蜜臀一区二区三区亚洲最新章节在线观看 - 高清蜜臀一区二区三区亚洲全集播放 | 男女真人网18| 精品无码一区二区| 欧插网站| 欧美 综合| 欧美有码激情视频一区二区三区| 老师充足的奶水小说| 免费网色网站| 久久久一区二区| 久久婷婷一区| 午夜无遮挡男女啪啪视频| 久久激情网| 超碰综合色| 97视频免费在线观看| 超碰成人最新最好看| 九七毛片九九毛片 | 亚州色图欧美| 亚洲熟久久| 天天看高清麻豆| 国产精品熟女丝袜一区二区| 香蕉国产精品麻豆亚洲欧美日韩| 国产av强奸美女| 欧美精品精品一区二区| 国产精品爽爽v| 日韩簧片免费看| 免费?级毛片无码?∨蜜芽试看| 国产小u女在线观看| 手机看片1024你懂的国产| 午夜精品久久久久久久第一页按摩| 亚洲 欧美 91| 一区二区影院| 精品在线观看视频在线| 92人人操人人| www色婷婷| 久久久性爱| 91色人| 999久久芭蕾| 日韩欧美性吧婷婷乱伦大香蕉| 亚春色色| 日韩成人免费电影| 青久久| 午夜福利av电影在线| 99re6国产精品99re在线| 精品免费一区二区三区在线亚洲人成| 91视频综合在线| 天天在线91| 91在线一起| 国产精品人人爽人人做可爱福利| 大肥女高潮bbwbbwhd视频| 色色操| 亚洲自拍偷拍视频在线| 国产日韩无码一区二区三区久久区| 天天噜| 一起草视频在线| 亚洲AV操| 欧洲天天在线| 观看免费区二区三区二| 岛国福利在线精品播放| 外国91| 美女干逼2| 亚洲欧美不卡线| 中文子幕一二三| 亚州综合色| 无码精品一区二区三区潘金莲| 91一起操| 国产精品九九| 粉嫩国产精品久久粉嫩| 午夜精品久久久久久久99蜜桃一| 91精品久久久| 日本免费中文一区二区三区四区 | 在线国产探花| 亚洲aV性爱| 干婷婷综合网| 69精品少妇一区二区三区蜜桃| 日韩99神马视频片| 亚洲一区二区av| 大香蕉乱级| av大香蕉| 亚洲欧美日韩国产丝袜自拍中文| 亚洲天堂少妇| 国产精品视频在线观看| 亚洲欧美在线观看2021| 福利偷拍视频-中文字幕2019国语完整视频大全-S91AV | 久久久免费懂色| 男人的天堂网页| 亚洲图片偷拍视频区| 亚洲国产日韩欧美熟妇在线| 国产 码在线成人网站| 1204av韩国| 啊啊啊免费视频| 3p国产欧美99热| 国产精品高潮久久AV| 91美女高潮| 亚洲欧美第一页| 99视频自拍| 日本五区不卡| 人人九九精| 国产精品夜夜夜| 亚洲欧洲无码bt精品合集| 中文字幕亚韩| 无卡一区=区| 亚洲国产一区二区入口| 日韩成人午夜精品久久高潮| 狠狠入| 国产激情av女片自拍| 欧美熟爽综合| 中文字幕乱码在线| 99成人| 美欧色综合| 久久九九综合| 日韩精品一区二区人人人| 国产精品久久久鸭无码的功能| 久久久久密臀视频| 亚洲日韩美国人妻| 东北女人| 久久久99免费| 99色| 欧美大波激情xxxx| 色九九九九| 国产欧美岛国精品一区| 97超级色碰碰| 99天堂网| 精品人妻一区二区三区四区石在线 | 老汉网| 人人操人人搞人人草| 熟女自慰久久久| 国产家庭乱伦性爱视频| 日本 免费 一区二区三区 久久香蕉| 一区二区三区男人的天堂| 另类小说综合网| 欲色啪| 婷婷亚洲综合| 2024黄色视频| 天天操天天日青青草超碰av| 成年人性爱日韩| 加勒比海色香蕉婷婷| 91热情品| 五月丁香啪啪啪| 亚洲久久久久| 大屁股国产在线视频| 美女一区二区国产精品| 啊啊啊啊好疼| 大香蕉之青青草原| 久久五月份| 国产精品人妻熟女aⅴ| 少妇专区一二三四五| 日本道久久综合色色| 蜜桃传媒视频第一区入口在线看| 人妻久热在线| 午夜福利免费精品视频| 欧美丝袜中文字幕07在线| 超碰久久性爱| 九九无码视频| 日韩欧美中文| 中文字幕在线观看网址| 精彩久久中文| 狠狠五月天| 国语国产操逼伊人AV网| 欧美人与动性人交a| 久久精品国产97欧美精品亚洲| 日韩欧美中文| www国产精品| 蜜桃久久久久久久久久久久| 亚洲综合97中文网| 亚洲综合97中文网| 午夜男女爽爽爽影院视频| 欧洲亚洲人妻无码久久三区四区| 欧美乱色| 亚洲免费人妻在| 亚洲欧洲综合av在线| 91高清欧美| 久久风骚城市| q2午夜理论片夜色av| 射丝袜大香蕉| 久久久禁| 蜜臀99久久精品久久久懂爱| 新视频sss国产| 国产精品秘 福利姬在线观看| 男人成人黄色视频在线观看免费下载| 国产女人和拘做爰视频 | 午夜无遮挡男女啪啪视频| 国产女性无套 免费观看| 欲香欲色综合天天伊人| 欧美传媒一区| 色超碰综合| 国产乱人妻精品入口| 草伊人高潮喷水超碰| 91爽啪| 国产亲戚伦亲在线| 亚洲免费人妻在| 日本在线激情一区二区三区| 欧美日本中字另类在线| 欧美Aⅴ| 91一区二区三区蜜桃| 一本色道综合久久欧美| 亚洲**2021在线观看| 精品久久无码午夜福利| 亚洲精品国产专区在线观看| 亚洲AV操| 婷婷影院入口| 国模精品娜娜一二三区| 青青国产精品在线| 日韩传媒在线| 欧美97视频| 90后后入| 日本性爱视频一级| Blackedraw视频一区二区| 91色久| 大香蕉免| 97色97好| 精品国产乱码久久久影院| 蜜臀va69| 欧美18 在线观看| 国语av最新自产拍在线观看| 欧美一级三级| 国产九九久久久精品| 中文字幕片| 婷婷15月天青娱乐| 新精精品久久精品| 97资源亚洲| 久久青青草原免费视频| 成人午夜小视频手机在线看| 亚洲操操| 亚洲精品国产av天美传媒| 97人人爱人人做人人乐| 97在线/亚洲| 成人性爱视频在线看| 这里有精品| 超碰 国产熟女精品一区| 免费精品无码一级毛片牛牛影视| 精品久| 91成人在线免费视频| 欧美狠狠弄| 午夜男人的天堂| 人妻精品一区二区在线| 一本久久精品中文字| 国产欧美在线观看免费观看| 久久亚洲不卡| 亚洲91射| 国产一区96在线| 男人下部插入女人下部| 久久久久96| 欧美中文字幕男人天堂久久精品 | 91黑丝露脚| 老鸭窝日丰县女人| 国产精品分类在线观看| 日韩激情中文字幕有码| 国产超碰国产97| 一本大道青青| 91熟女网| 国产色图乱伦| 欧美日韩99| 久久久精品九| 大香蕉黄色一区| 熟妇人妻一区二区三在线| 国产精品盗摄 偷窥盗摄| 久久理论字幕视频| 国产精品直播在线观看直播| 伊人97色天使| 国语少妇精| 韩国午夜理伦三级好看| 欧美91久久久久| 欧美色性爱| 91天天爱| 亚洲最大网站av| 另类视频在线| 日韩乱伦视频| 日本久久久精品电影| 欧美国产欧美在线观看| 美女主播色欲91抠b在线播放| 亚洲女优有码无码高清| 九九性爱网| 久九九九| 性生活无遮挡纯毛片在线看| 看日韩黄片| 亚洲有码第一页| 五月天黄色激情视频| 久热精品色情| 国产高潮AA片免费看| 97亚洲中文| 极品粉嫩一区二区| 中文字幕aⅴ在线视频| 狠狠爱夜夜| 精品久久久久久亚洲| 久久久久国产精品久久久| 春色校园综合网| 国产1769在线| 精品人妻一区二区三区在| 97天天综合网| 激情欧美日韩女同久久| 亚洲性爱电影| 欧美熟妇精品黑人巨大91| 欧美色图亚洲色图成人在在线| 7777奇米影视久久| 蜜桃臀av一区二区| 午夜福利区| 亚州国产精品乱| 国内偷拍精品一区二区| 亚洲做性| 九九aV| 韩三级a视频在线观看| 茄子社区国产精品| 熟妇一区二区三区| 成人欧美一区二区三区黑人一| 亚洲无码超碰免费| 强奸熟女一区二区三区| 99久久这里只有精品| 久久老子无码午夜伦不卡| 亚洲高清无毛一区二区| 欧美78| 青青色综合| 日韩乱码Av| 久热这里| 亚洲欧美中文日韩视频中国语| 欧美大香蕉专区网| 日韩成人性日韩成人性爱视频在线免费观看| 啊啊啊啊啊好舒服视频| 国产乱弄免费在线视频。 | 97亚洲欧美| 老熟女综合网| 九九九久| 日本2020一区二区| 亚洲天堂少妇| 大香蕉视频啪啪啪啪| 色偷综合| 婷婷丁香一区二区三区| 粘花网06av视频| 中文字幕乱码人妻一区二区三区,99精品| 亚洲精品一区中文字幕乱码| 99精品热| 夜夜肏2021| 日夜啪电影| 精品四五区| 久久一留热品黄| 天天天乱色综合全| 欧美亚洲se91| 大香蕉日亚洲日本亚大 | 色优久久| 啪啪视频mP4| 亚洲高清无码在线桃色| 欧美日韩国产高清在线一二三区| 18禁美女裸体无遮挡啪啪| 影音先锋视频在线| 全球成人中文在线| 制服乱伦| 丁香五月天堂| 女人的久久久| 国产区91柔拿会所技师| 91精品久久久久五月天精品| 91成人高清在线观看| 亚洲综合中文字幕有码| 五月婷婷六月色| 8050午夜少妇无码| 国产一区二区精品在线视频| 欧美碰碰综合色| 丰满人妻一区二区三区| AA特级绝黄| 色哟哟综合| 天天摸夜夜添无码小视频| 九九热精品视频六| 亚洲加勒比| 欧美在线电影| 日韩激情电影中文字幕| 日韩在线观看字幕精品| 国产熟女免费观看久久| 91黑丝露脚| 青春草A| 亚洲国产丝袜在线观看| 精品一区二区麻豆| 麻豆精品.欧美精品.日韩精品.| 美女性91| 国产无码三级视频在线观看| 91在线视频免费播放| 大香网站| 欧美性生活综合| 九九性视频| 9久久美女首页| 日日躁天天躁狠狠躁| 超碰免费97| 91在线视频免费播放| 五月丁香综合| 欧美视频在线第3页| 性爱AV天堂| 日韩综合色图| 亚欧毛片基地国产毛片基地| 亚洲成人久久美女| 欧美日韩亚洲天堂网| 亚洲欧美日韩国产丝袜自拍中文| 97视频新免费| 五十路六十路素人熟女| 九久9精品| 国精品一区二区三| 97视频播放| 天天色,天天干,天天干| 性爱久久| 国产精品一区在线播放| 野狼福利社区| 8050无码八戒| 加勒比av中文| 欧美日韩1234| 人人做人人妻人人夜视频| 97在线免费看| 日韩在线国产字幕| 91碰碰碰| 欧美综合1性辶| 亚洲精品日韩国产欧美| 天天摸天天舔天天操| 伦激情人妻另类人妻| 亚洲国产高清福利视频| 爆乳免费黄网站| 男人的天堂免费| 日韩Va亚洲va欧美Ⅴa久久| 婷婷综合网| 欧美三级偷拍| 中日韩熟女| 免费超碰97久久| 亚洲成人av电影在线| 麻豆伊人网| a一区二区三区乱码在线| 亚洲棕合电彰| 99国产在线 精品 视频| 综合网久久| 免费的黄片有限公司| 爽爽爽免费视频| 国产日韩区| 中国黄色特级精品一区二区三区片| 亚洲经典啪啪| 欧美亚洲系列| 夜色五月天| 欧美精品宗合| caopeng97人妻| 欧美性爱第一页久久| 五月天色图| 秋霞一级鲁丝片A片| 宗合情欲网| 萌白酱自拍视频| 狠狠爱夜夜干| 丰满的三级少妇欧美久久久| 91蜜桃传媒精品久久久一区二区| 色色五月婷婷| 亚洲久久久久| 人妻激情在线视频| 99热成人| 欧美人妻精品| 免费?级毛片无码?∨蜜芽试看| 天天日日夜夜| 人妻天天爽天天爽三区| 国内黄色精品| 欧美黑人91| 日韩欧美女优电影| 免费av在线播放二区| 9ⅰ久久久天天| 日韩欧美国产高清视频| 亚洲熟女乱色一区二区三区久久久 | 人人贴人人摸| 四虎在线播放| 九九九九九九九精品视频| 亚洲人妻中文在线视频| 欧美日综合| 欧美综合站| 中文字幕性感少妇av| 九九视频黄色片| 丝袜 中出 制服 人妻 美腿 中文字幕| 嗯嗯啊啊视频在线看| 亚洲色图欧美色图日韩色图| 成人性交免费视频| 中文字幕免费在线观看| 91高跟美女在线播放| 人妻少妇精品一区二区三区| 午夜理论片在线观看免费| 日本韩高清无砖码22o| 人妻 制服 日韩 中文 在线| 北条麻妃99精品青青久久| 久精品无码av一区二免费国产在线观看 | 亚洲色9| 日韩三级网址| 久久人人看| 91av一区二区在线观看| 亚洲综合97| 男人的天堂2000| 狠狠夜色午夜久久综合在线| 亚洲 欧美都市激情| 蜜桃久久综合视频| 人妻嗯啊啊在线播放| 国产精品美女在线一区| 国产精品网址| 精品人妻av在线播放| 欧美aa一级片| 777AV电影| 亚洲天堂AV在线播放| A 在线网址| 欧亚乱色熟女一区二区| 中国国国产一级特黄毛片| 狠狠操夜夜| 精品国产一区二区三区在线播出| 最近2018中文字幕在线高清第一页| 1769成人国产精品视频| 亚洲欧洲激情卡通另类文学四射小说网站| 久久区| 国产亚洲99久久精品熟| 激情抓乳插进去啪啪啪日韩 | 久久亚州精品成人Av无| 最新三级网址| 国产做?爰片久久毛片?片美国| 一区二区三区机械有限公司| 日韩AV电影网站| 国产精品情侣啪啪| 蜜臀AV一区二区三区激情综合| 五月婷婷性爱| www色色com| 97自拍视频在线| 成人精品视频一区二区| 蜜桃色院一区久久 | 久日综合网| 少妇高潮一区二区三区在线| 久久久久久久强迫| 在线中文字幕极品av| 国产欧美一区二区| 很狠操| AV乱伦专区| 爱av免费| 熟妇人妻一区二区| 欧美成人精品一区二区男人蜜臀| 精品97久久| 在线有码中文字幕| 久久精视频美日韩在线视频| 欧美午夜精品久久久久久超碰| 老熟妇综合| 欧美亚洲今日在线| 波多野结衣一级视频| AV色天香在线| 亚洲国产蜜臀系列在线观看| 麻豆91熟妇人妻中文字幕茄子| av最新免费中文字幕| 又大又黄国产| 美女十八禁| 无码操逼网| 中文字幕-区二区三区四区视频中国| 中文字幕日韩情色| 日韩欧美成人综合在线| 五月天激情小说| 欧美淫乱视频| 亚洲天堂人妻熟妇视频| 欧美日韩一干二干| 国产精品不卡一区二区电影| 天天欧美色| 五十路熟女人妻一区二区在线观看 | 大香蕉一人在线| 26uuu成人影片| 麻豆国产原创AV色哟哟 | 女人久久久| 日本三级韩三级99久久| 色噜噜人妻av中文字幕| 黄色毛片A片| 精品无人区麻豆乱码1区2区图片| 五月婷婷丁香六月丁香| 四季AV一区二区凹凸精品小说| 黄色无码高清黄色无码网站| 黄色二级片网站| 中文字幕日韩专区精品系列 | 亚洲中文字幕av| 国产精品久久久无码AV网站| 亚洲素人网| 亚洲免费成人在线高清无码视频| 97久久精品亚洲中六字幕| 999久久久九九九九| 久草成人福利导航| 欧美成人免费在线观看| 欧洲亚洲人妻无码中字久久三区四区| 免费a级毛片av无码久久精品中文字幕| 手机不卡视频不卡在线一二三区| 手机看片日韩人妻| 麻豆精品A片免费观看| 国产高清26uuu| 九九九九九精品十六| 夜夜天天噜狠狠爱2021| 91在线国产后入风骚翘臀美女素人| 综合一区中亚洲国产成人综合精品| 91插B网站| 欧美精品另类人妖xxxx| 久草精品国产99| 97精品视频免费| 久久91视频| 美女骚尻视频| 婷婷午夜| 欧美亚洲第一页| 色97国产69香蕉| 日本免费不卡二区| 一级黄色性爱A级片| 男人的天堂免费| 国产亚卅97| 国产97色在线| 亚洲精品国产无码高清| 久久久亚洲精品中文字幕人妻| 午夜天堂精品久久久久91| 男女做爰猛烈动高潮A片免费应用| 天天情欲宗合网| 夜夜操老骚逼视频网站| 亚欧性爱在线无码| 欲香欲色综合天天伊人| 91丝袜在线视频| 激情四射婷婷四五月天| 亚洲九月丁香| 99啪| 亚洲Av无码成人精品国产| 亚洲中文字幕在线视频一区二区| 九九这里只有精品| 熟女AV一区| 青青草视频在线观看一区二区| 91五月天| 久操凹凸视频| 日本中文字幕在线电影| 超碰成人公开| 亚洲乱色熟女一区| 欧美一级黄色免费专区| 亚洲欧美综合网站| 久久久9品一区二区三区| 国产免费操逼| 亚洲图片另类| 亚洲精品熟妇1区2区3区。| 欧美久久久| 高潮综合网| 超碰97在线中文| 大香蕉综合在线| 久久熟妇五十路一区| 俺去久久| 男人天堂久久日韩| 无码免费一区二区三区啪啪| 欧美后进式| 1024亚洲中文字幕久在线看片你懂的| 天美AV片| 不卡超碰护士AV在线免费播放| 亚洲 国产 精品一区| 国产精品久久久无码AV网站| 亚洲制服aⅴ中文字幕| 大香蕉一线视频| 九月婷婷综合| 美国一区二区免费视频| 亚洲黄色影视| juliaann精品熟女一区| 欧美天天综| 免费看国产大AB| 麻豆一区二区三区精品| 97草草| 亚洲色欧| 97超碰色色| 超碰午夜| 亚洲成人性| 岛国精品视频在线观看| 国产少妇与亚洲av| 有码人妻系列| 男人天堂网手机版婷婷| 9久久精品| 精品91日日夜夜超清资源| 国产精品麻豆免费视频| 色情乱伦AV| 欧美人人AAA| 91大神电影天堂| 动漫av中文| 九九亚洲| 肉嘟嘟www视频在线观看高清| 熟妇熟女亚洲天堂网| 97色妞| 人人妻人人玩人人澡人人爽| 亚洲欧美色图片| 操逼视频亚洲| 久久伊人大香蕉| 老司机久久| 人妻少妇久久中文字幕一区二区 麻豆 | 国产农村一一级特黄毛片| 精品人妻一区二区三区-国产精品| 日本黄页视频在线观看| 欧美激情亚洲| 免费亚洲黄色视频在线观看| 男人的天堂.com| 东京热,男人的天堂| 一起草日韩| 久久精品老司| 日本αv| 无码高清少妇久久| 1024亚洲中文字幕久在线看片你懂的 | 啊啊啊好大好深| 欧美日韩性爱操大逼| 丰满人妻-区二区三区免费| 60秒免费小视频| 久久久91| 天天爽天天操| 免看60秒涩涩视频| 国产乱人伦AVA麻豆软件.| 丁香婷婷激情五月天无毒不卡 | 91久久久视| 最新无码国产| 大香蕉 222| 91精品人妻一区二区三区蜜臀| 国产亚洲精品A在线观看下载| 二区熟妇韩日| 国产一国产一级毛片古装| 男人的天堂在线有码| 不卡二三区人妻少妇| 久久久久久亚洲中文| 国产女上位好爽在线| 欧美后入| 精久久久91| 色九久| 九九在线精品| 国产老太乱伦一区| 久久9视频| 亚洲图片 欧美电影| 日日狠狠久久偷偷色综合免费| 欧美,亚洲,日韩,v,天堂,手机在线观看 | 97一区二区三区视频| 91爆操视频| 日日骚网站| 国产午夜无码片在线观看影视| 欧美精品 - 91爱爱| 精品人妻av在线播放| 亚洲久草AV色图| 国语av最新自产拍在线观看| 久久久91福利姬| 小草三级久久观看| 成人自拍三级在线观看| 综合久久99亚洲人妻中文在线| 久久这里只精品99re66图| 欧美色老汉| 蜜桃视频一区二区三区在线观看| 国产视频一区二区三区在线免费观看| 91碰碰| 99久久com免费视频′| 俺去啦俺来也久久综合| 超碰97资源网亚洲| 麻豆天美国美国产| 操逼操逼视频操逼| 啊啊啊好想要| 欧美一区二区三区大综合| 大香蕉黄色一级片免费看| 欧美激情专区| 无码九九| 国产精品天美传媒| 久久久久久AⅤ无码免费肉站| 日韩熟女三十乱伦| 亚洲色棕合| 日韩欧美丝袜诱惑| 日本天天操| V A在线| 久久久久久久久一区二区三区| 白丝1区2区3区| 亚洲操逼无码| 日欧亚洲二三区大片不卡| 欲女人妻性色av| 97干天天| 花野真衣| 亚洲欧美国产其他二区| 欧美精品精品一区二区| 97色综合中文网| 麻豆天天躁天天揉揉AV| 屌妞视频久久久久久久 | 国产精品久久久久综合| 日韩黄片视频试看| 亚洲人妻精品一区二区| 日本97久久| 男人天堂久久精品不卡| 色偷偷色偷偷欧美日韩| 少妇同性| 久久大香蕉手机高清视频| 自拍偷拍 日韩无码| 日韩成人精品视频自拍| 色综合天天| 久久人人爽爽人人爽人人片αV| 日本黄色大片一级视频免费麻豆| 亚洲伊人成综合成人网| 亚洲影视综合| 1区2区3区视频| 亚洲在线欧美| 中英熟女操女| 大香蕉www.超碰| A级在线视频| 97天天日| 一区二区视频在看| 九久9热| 色网综合网| 亚洲激情在线| 亚洲伊人久久综合97| 在线观看免费视频国产| 日韩无限资源| 免费观看性欧美一级| 国产综合网站在线播放| 人妻少妇久久中文字幕一区二区 麻豆 | 激情99| 粉嫩国产精品久久粉嫩| 日韩少妇丰满亚洲| 人妻天天爽| 欧美亚洲20p| 日本精品免费一区二区三区四区| 日日骚精品视频| 91岛国动作片| 操逼视频色| 99精品网| 色综合20p| 999国产精品999久久久久久| а√天堂资源官网在线资源| 一级黄色视频网| 另类图片五月| 久久综合久色欧美综合狠狠| 91四海无码日韩欧美| 欧美伊人久久综合网| 五月婷婷深深爱| 长久操视频| 搡老女人老91二区| 一级二级三级黑人无码| 亚洲麻豆精品二区三区| 中文字幕在线观看视频www| 天堂中文资源在线bt| 国产馆极品诱惑| 欧美情色亚洲| 国产激情av女片自拍| 欧亚不卡| 青草精品视频一日本久久久久网站| 人妻少妇被猛烈进入中| 一本一道人妻久久一区二区三区 | 天天综合网1| 啊v在线观看视频| 亚川综合视频| 超碰99热中文字幕| 亚洲色电影在线| 中文字幕精品资源在线| 在线只有精品| 男人把坤坤插入女人的下体| 天美传媒AV在线| 精品久久久久久亚洲| 欧美色干| 先锋精品av色鲁| 成人小电影网站tex| 婷婷亚洲五月***久久| 骚女高跟AV在线| 中文?日韩?免费?精品| 久色网| 性色高清..……| 国语精品内射在线观看| 天天干2区3区| 久久精品国产亚洲AV先锋| 精精夜夜| 亚洲欧洲中文日韩女优乱码| 口爆欧美91| 精品无码久久久久久国产浪潮| 99啪| 啪啪视频亚洲第一| 亚洲网污污污污| 99久久综合网| 国产美女自拍视频| 综合网欧美在线| 欧美性爱综合,免费| 日本一区二区三区欧美日韩中文字幕| 一区二区三区四区在线不卡| 狠狠色狠狠色狠狠五月| 亚洲精品97久久中文字幕| 亚洲欧洲成人在线电影| 精品久久在线区一区| 色香欲影| 九一综合精品视品av| 美女黄页网站| 亚洲激情综合| 色网色网色网色网色网色| 99蜜桃臀久久久欧美精品网站| 亚洲色婷婷久久久综合日本| 久久久久久AV无码免费网站| 美女t无毒不卡不卡| 99色色| 无码一区免费在线不卡| 日韩天天本| 99热在线观看| 国产深喉视频一区二区| 亚洲综合九| 中文字幕第页| 蜜臀中文字幕| 视频二区熟女人妻|