国产成人欧美一区二区三区vr_久久国产精品人人爽人人爽_国产精品永久免费播放_肉欲啪啪a∨无码精品一区二区_国产超短裙jk丝袜在线_亚洲AV片高清资源在线观看_国模无码一区二区三区久久_国产成年人未进视频_中文字幕无码精品夜_一区二区三区在线视频免费看_亚洲成AV人片在线观看网址_日本激情视频高清综合久久_亚洲午夜视频福利_国内大量揄拍人妻精品視_久久国产精品福利二区三区

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
返回資訊列表
天天干美少妇一区| 欧美日韩久久精品爱爱| 青青草操逼逼视频| 精品一区二区人妖| 国产精品永久免费10000| 超碰免费欧美7| 亚洲日本韩国在线| heyZO天然素人无码AⅤ专区| 日韩一级欧美一级国产一级台湾 | 曰韩少妇无码| 丰满少妇人妻久久久久久| 久久黄色性爱视频| 九九九网站| 密臀国产在线| 97碰碰日本乱偷人妻中文的| 女人的久久久| 射丝袜高跟鞋99| 精品少妇一区二区三区在线视频| 国产亚洲色停停久久99精品91| 另类欧美| 亚洲熟女乱色一区二区三区久久久| 超碰三级秋霞| 一级黄色影片| 日本国产欧美高清在线| 精品v日韩欧美国产| 日日操免费视频| 大学生美女口爆| 黄色工厂这里只有精品| 欧美洲精品一级| 久久久婷| 精品二999| 超AV色女| 国产偷仑| 久久精品视| 97精品久久久久中文字幕| 区一在线观看| 久草精品一区| 人妻精品一区一区三区蜜桃91| 大香蕉伊人在线成人AV在线观看| 精品久久大胆人体| 精品乱码在线观看| 91久久国产精品| 国产熟女自拍| 97视频在线观看免费高清| 亚洲精品久久久久久| av天堂加勒比| 久久精品国产亚洲av水密被窝| 日韩高清一二三| 日韩精品9区| 天天看高清麻豆| 天堂在线一区二区| 亚州,欧美在线| 99热这里只有精品1| 99最新日韩偷拍视频| 嫩草 我啊~嗯~在线| 一级黄碟| 亚洲图片小说欧洲| 欧美激情久操网| 富女玩鸭子一级毛片| 夜草网站| 影音先锋国产精品| 国产 大胆 对白| 免费国产| 日欧操屄| 婷婷啪啪| 欧美在线啊啊啊| 亚洲综合 欧美| 后入国产| 国产第25页在线观看| 亚洲AV成人无码久久精品播放| 婷婷丁香五月激情啪啪| 中文字幕久久精视频久久大全| 青女在线| 国产一区二区二区按摩精品啪视频| 懂色Av| 三级色综合| 久久色情| 亚洲91综合| 97爱爱爱| 日韩黄色成人性爱| 欧美一区二区三区大综合| 国产第11页| 亚洲欧美91| AV在线性爱| 伊人婷婷五月天| 青青草十区九区爱夜| 91美女国产在线| 色综合av综合久久| 大香蕉在线视频15| 熟女少妇一区二区三区| 约操熟妇| 日韩啪啪啪视频| 传媒在线观看一区二区三区| 亚洲av影音先锋| 亚洲中文制服诱惑| 国产精品黑人一区二区三区| 亚洲综合性感在线| 九九久久精品| 麻豆精品A片免费观看| 日韩人妻精品久久久久| 97久久国产精品| 少妇贴图| 欧美性生活综合| 高跟丝袜AV专区国产| 亚洲国产激情国产av| 婷婷五月天久久精品视频一区二区三区| 国产视频小说| 国产精品不卡一区二区三区av| 欧美亚洲日本激情在线| 韩国嫰模上门援交视频| 国产精品露脸在线观看| 久久大香蕉手机高清| 黑丝制服中文字幕| 国产日韩欧美操逼视频| 精品无吗m| 天天操夜夜嗨| 青青草视频久久久久| 久久青娱乐| 色翁荡息又大又硬又粗又爽| 男人夜色天堂ss| 91伊人久久在线| 伊人丁香五月婷婷| 99热导航| 国产免a费看黄片在线| 欧美性爱97超碰| 国产人妻精品一区二区三区秋霞| 精品欧美А∨无码黑人大荫蒂 | 久久九九99| 亚洲激情深爱文学小说网站| 大香蕉免费乱伦视频| 色狠人在线99| 国产又猛又粗又爽又黄| 91天堂视频| 欧美第一页| 欧美综合站| 狠久久| 人人看欧美性爱| 精品人妻一区二区三区夜夜| 内射小黄片| 亚洲男人天堂2012| 牛牛操视频逼| 秋霞一区二区三区四区五区六区七区| 性暴力欧美猛交在线直播| 中文字幕黑人大片| AV一二区| 草草草视频在线免费看| 天天干天天日天天射黄色大片 | 另类 日韩 熟女| 超碰天天操| 777AV电影| 97欧美色| 狠狠狠狠狠狠| 精品毛片av一区二区| 亚洲男人天堂2012| 富女玩鸭子一级毛片| 伊色综合天堂色97| 精品人妻中文字幕4399| 中出后入| 在线另类| 黄色片A级一区二区三区| 自拍丝袜美腿人妻| 做爱A级亚欧| 久久亚洲一区二区色婷婷| 爱媛媛久久国产福利| 精品人妻一区二区三区蜜桃视频| 人妻熟女午夜精品在线| 成人一级性爱| 色天天野狼综合社区| 日韩Va亚洲va欧美Ⅴa久久| 51一区二区三区| 色五月激情网| 国产美女口爆吞精视频| 操老熟女AV| 亚洲欧洲日韩中文字幕一区| 欧美亚洲玖玖玖| 日韩啊V| 九一综合网| 日韩久久激情精品| 无码操逼视频一下| 亚洲丝袜在线观看| 日本三级韩国三级美三级91| 免费观看的av| av天堂手机版追回| 精品日韩人妻视频| 欧美 亚洲 在线| 综合网久久| 日本一本一区二区三区四区五区欧美日韩中文字幕 | 亚洲少妇在线影音| 五月丁香狠狠爱| 在线播放成人高清免费视频| 日韩精品-原创伙伴| 极品粉嫩一区二区| 久久xxxx| 亚洲欧洲综合视频在线| 亚洲性爱免费电影| 碰碰97| 国产精品乱码久久久久久| 亚洲男人天堂2019| 狠狠激情综合狠狠操中文字幕| 91爱| 人人噜夜夜操| laoshunv91| 一区二区偷拍拍视频| 屁屁影院一区二区三区国产| 日韩综合无码色欲vv| 青娱乐休闲视频在线观看| 精品二区三四区五电影 | 色 亚洲 91| 亚洲男人天堂Av| 男男H黄动漫啪啪无遮挡网站| 麻豆国产97在线| 999国产精品999久久久久久| 97 国产精品| 国产风韵犹存熟妇三区| 国产乱人妻精品入口| 国内精品久久国产,www香蕉久久五月丁香,亚洲欧美日韩精品永久在线,日本精品一 | 一起草三级AV电影在线观看 | 国产AV线| 国桃视频产巨乳精品一区二区在线| 四月丁香婷婷| 裸体女人草逼视频播放一区,二区,三区,四区,五区 | 天天精品| 婬女免费一二三区A片| 日本成人A片网站| 乱伦一二三| 亚洲精品久久久久毛片A片拉屎| 久久有码视频| 欧美另类丝袜熟女| 精精品人妻一区二区三区| 性色高清..……| 蜜臀在线看片| 日韩在线观看三级电影| 白丝av| 婷婷爽人人婷婷爽视频| 九九九精品成人免费视频小说| 久久欲| 欧美日韩另类在线播放| 凹凸久久人人| 99久久9| 五月婷视频| 97五月天| 国产精品国产| 97中文综合| 欧美情色亚洲| 小日子操bb在线看| 成人三级片无码| 久久国产99精品72福利| 日韩78m视频| 久插综合| 91蜜桃传媒精品久久久一区二区| 久久久久国产精品久久久| 最新无码国产| 乱欲一区二区| 一区二区日韩欧美久久| 在线黄色污污网站| 欧美性第1页| 超碰超碰超碰超碰的大鸡吧操黑丝袜| 91AV入口| 在线精品福利免费播放| 97操97色| 欧美丝袜91| 欧美日本成人一区二区| 成片免费播放| 超碰97男人| 久久华人网| 1769成人国产精品视频| 强奸xx国产| 欧美最婬乱婬爆婬性视频| 天天插天天操天天摸天天射天天看| 中文字幕无码不卡啪啪| 一区二区精品日韩欧美在线观看| 国产一区二区啪啪视频| 色五月69夫妻| 偷拍盗拍亚洲色图图片| 91狠狠色丁香婷婷综合久久精品| 精品97精品97| 免费?级毛片无码?∨蜜芽试看| 人人插人人搞人人操| 丰满人妻一区二区三区在线| 凌辱美少妇久久aV| 免费超碰97在线观看| 蜜臀久久99精品久久久老,,| 色九久| 免费观看国产不卡av| 无码自拍SM| 啊灬啊灬啊灬啊灬高潮奶出了免费视 | 美女丝袜激情小说| 97超碰人人操人人操| 日本性爱少妇| 性爱AV天堂| 亚洲国产丝袜熟女av | 欧美激情 一区| 草草影院最新网址| 天天看人人操屄犊摸阴| 男插女青青影院| 蜜臀久久99精品久久久老,,| 色狠狠一区二区三区香蕉| 中文字幕交换人妻| 性欧美| 国产精品香蕉热久久新品| 91偷拍欧美亚洲| 日本媚薬中文字幕在线| 97任你吞精| 欧美激情久久久久| 亚洲精品国产专区在线观看| 中文字幕视频2区| 国产97亚洲| AAA久久| 亚洲另类色综合网站| 一个国产在线综合网站| AV丝袜少妇| 欧美性生活免费网| 亚洲欧美校园| 女同在线视频一区| 日韩三级伊人| 一道本东京热加勒比一区二区三区| 人人操人人摸超碰| 免費人妻夜夜爽天天爽爽一区| 人妻久久一区二区三区| 一本一道人妻久久一区二区三区| 天天日夜干| 91狠婷| 国产在线视频二区| 日日日大屁股骚女人精品| 人妻少妇被猛烈进入中| 九色 蝌蚪 熟女自 | 嗯嗯啊啊好疼| 国产99久久99热这里只有精品15| 看看日B真人视频| 亚洲国产高清福利视频| 亚洲国产天堂| 久热久| 精品在线观看视频在线| 欧美不在线| 丰满人妻一区二区三区在线| 精品久久无码午夜福利| 欧美日韩美女精品久草一区二区三区| 亚洲操人| AAAAAAAAA黄片| 超碰97最新人妻| 婷婷久月| 国产成人自拍视频视频| 欧美人妻熟女在线| 91女人的网站| 深田咏美亚洲精品福利社| 欧美日韩中文字幕人妻| 中国小夫妻勾搭露脸淫荡对白| 日日操丁香五月天| 精品人妻久久久| 爱欲AV| 色婷婷六月| 欧美性爱精品七区| 久久久精品九| 800zy一区二区| 最新中文字幕在线亚洲| 国产精品白丝在线播放| 欧美性少妇| 午夜欧美J进J出白浆流出久久久| 国产懂色精品国产av| 国产91影院| 亚洲欧美天| 97天天做| 日韩精品99999| japan日本高清乱xxxx| 麻豆91熟妇人妻中文字幕茄子 | 国产精品午夜福利亚洲综合网| 97爱b| 操一区| 久久精品国产亚洲AV无码做| 日韩欧美亚欧在线视频| 99热精品在线观看| 粉嫩av在线| 日韩色图 一区二区| 日韩天堂av电影在线观看| 婷婷综合网| 成人七区| 中国一级操逼视频| 日韩无码视频黄色| 日韩成年人性爱视频| 9精品久久久久| 久草综合视频| 亚洲 图片 欧美 色图| 91精品丝袜久久久久久| 亚洲无码一二三区| 国产自产自拍| 看一级特黄a大一片| 久久久久久亚洲Av无码精| 色色九区| 国产91影院| 超碰97精品| 天天干夜夜鈤| 特污精品女优骚货黄色视频在线免费观看| 男人成人黄色视频在线观看免费下载| 天天天天天天天天综合| 伊人国产视频| 中文字幕伊人| 国产精品一区二区麻豆| 久久这里只| 久久人妻精品| 狠狠中文字幕| 亚洲、日韩、综合、另类| 夜夜操二区| 91人妻视频在线| 极品色社| 偷窥自拍亚洲色图| 肥臀熟女福利视频一区二区| 久热久| 丰满人妻一区二区中文| 涩亚洲欧洲| 91热色| 久久久青青草| 天美91| 乱伦一二三区| 国产精品极品美女视频| AV无码久久久精品| 国产精品久久久久久夜夜夜| 高跟伊人julia ann| 超碰碰97| 欧美日韩人妻精品一区二区三区 | 欧美乱欲| 日韩av在线精品观看| 男人久久天堂| 五月丁香社区婷婷日韩欧美精品影院 | 开心五月婷婷激情| 91熟女熟妇视频网站| 加勒比在线视频| 嗯嗯嗯啊啊啊操的我好爽| 大香蕉宅男伊人| 国产精品午夜福利视频| 欧洲精品二区| 日日骚中文字幕| 亚洲一卡2卡3卡4卡乱码网站 | 五月天婷精品激情| 一区二区偷拍拍视频| 九九玖玖精品| 久久精品91| 亚洲毛片基地专区| 黄色网址在线免费观看| 中美日韩毛片| 97ai亚洲| 国产精品无码av嫩草| wwwss在线观看| 啊啊啊啊好大好硬啊啊啊啊啊| 啪啪啪男女亚洲中文字幕99| 欧美激情另类一区二区| 大香蕉AV丝袜| 好湿好紧视频| 蜜乳性色无码专日粉嫩骚逼AV| 91精品无码人妻系列| 最新加勒比丝袜在线| 精品无码一区二区人妻久久蜜桃| 成人怡红院| 日美免费黄片| 欲色影视综合吧| 91青青在线| 亚洲综合中文字幕有码| 日韩内射视频| 91精品人妻一品二品三品| 超碰色男人操熟女| 久久久影院| 日日日日做夜夜夜夜做无码97| 97天天综合| 中文字幕日本久久| 在线观看视频91| A级毛片在线看免费| 天美传媒av 在线| 男人天堂久久精品不卡| 狠狠色狠狠色狠狠五月| 日本女厕偷拍| 国产精品人妻免费精品| 亚洲 欧美 天天| 亚洲在线综合| 99在线观看| 久艹免费| 天天射影院| 97超级久久| 色官网在线| 啊视频在线| 殴美大黄片| 日韩精品中文字幕人妻| 日本污ww视频网站| 国产乱码久久久| 欧美日韩一区二区三区四区蜜桃| 偷拍色图| 婷婷亚洲五月***久久| 亚洲在钱| 国产99 中文字幕日韩小视频| 亚洲天在线| 秋霞视频一区二区| 91人妻熟女| 五月丁香综合网| 天天操夜夜操| 麻豆性爱视频在线播放| 久久性爱网站| 国产夫妻性生活视频| 五月天成人综合| 啪啪自拍九九综合| 超碰碰97| 久久av一级av少妇av高潮| 久久视频,这里只有精品| 欧美性巨大╳╳╳╳╳高跟鞋| 俺也射| 国产热RE99久久6国产精品首| 久午视频| 少妇毛片久久| 欧美特大黄一级片片免费| 伦理第一页| 欧美性区| 五月丁香综合激情| 久热精品在线国产| 国产97综合| 中文字幕精品资源在线| 看日韩黄片| 欧美日韩人人精品| 国产 三级自拍| 日韩欧美女求操每天更新| 蜜桃中文字日产乱幕4区| 超清福利精品视频在线| 亚洲成人AB| 肉丝网站91| 亚洲成A∨人影院在线欢看| 91青青| 美女毛片999| 久久久九九网站| 国产福利视频精品视频| 偷拍五区| 国产高清不卡视频| 99色视频| 性开放中文AV高清无码免费看| 丁香九月婷婷| 久久九九久精品国产尤物|国产精品爽黄69天堂A片潘金莲,国产亚洲精品第一综合 | 香蕉欧美| 精品免费囯产一区二区三区 | 青娱乐福利99| 91女日逼| 中文字幕欧美日本乱码一线二线| 97 国产一区| 色婷婷综合视频| 国产精品一级特黄aaa大片在线观看| 噜噜瑟| 欧美在线l亚洲| 久久精品一区二区三区不卡| 爱射综合| 乱伦AVxx| 一起草日韩| 综合网天天| 伊人91| 国产超碰欧美| 天天搞欧美| 国产地址二三| 性爱AV天堂| 丝袜内射| 久久免费看高潮毛片韩国| 3571色综合一区二区二区| 九九久久一区二区伦理| 成人一级性爱| 久久成人国产精品| 97精品一区二区视频| 综合夜夜| 俺去啦俺来也久久综合| 超碰97精品| 97在线看| 亚洲美女AV无码| 国产美女高潮| 丰满少妇一区二区三区免费看| 九t超碰| 久久加勒比| 日韩精品一二三| 色爱亚洲| 91肉片| 一道α片欧美| 亚洲好看强奸乱伦| 国产一区二区欧美日本| 久久一区二区高清免费| 久久久精品成人国产| 不卡啪啪视频| 精品久久久九九九孕妇| 综合网,亚洲,欧美| 91久久久视| 国精综合一二三区影视| 亚洲中文字幕一区| 中文字幕女同在线| 中日992视频| 97亚洲在线| 亚洲精品久久久久久久蜜桃臀| 91精品老女人| 丰满美女一级毛片在线播放| 99久久久er直播网址| 午夜理论片在线观看免费| 99久久婷婷国产综合| 人人操AV| 亚州高清色综合| 蜜桃狠狠色伊人亚洲综合 | 99色网| 夜夜精品视频| 黄骗免费| 国产剧情一区在线观看| 91AV老熟女视频| 乱子伦一区二区三区国产精品| 99re在线视频| 一级毛片电影免费看| 欧美gv在线观看| 秋霞一级视频在线观看免费| 丁香五月综合| 91老熟女老女人国产老太| yazhououmeizongya| 国产后入| 国产九九九九九九九九| 九九精品美女高溯喷水| 天天日骚逼熟女| 97色网| 性爱乱伦一区| 国产久久视频| 美女久久久久久久久久久| 日本性爱视频一级| www.色婷婷.com| 亚洲少妇在线影音| 立川理惠被中出无码| 粉嫩粉嫩一区性色AV片| 亚洲码和欧洲精品激情系列| 老司机香蕉久久久久| 台湾一区国产高清在线| 亚洲成人在线播放| 欧美 亚洲 另类 综合| 欧美激情专区| 国产精品久久久久久片| 97国产色图| 精品久久久久久中文字幕视频免费| 色综合久久88色综合久久天天| 日本三级日本三级99| 操人妻逼91| 久久69| 岛国视频一二三区| 嗯嗯啊啊操死我| 久久久亚洲精品中文字幕人妻| A级毛片在线看免费| 天天日夜夜| 亚洲精品乱码久久久久久蜜桃麻豆| 高清有码一区二区| 91狠狠综合久久久久久| 欧美姓爱综合网| 日韩中文字幕视频在线观看| 精品妇操一区二区三区| 中文字幕乱码人妻二区三区| 高树玛利亚无码流出| JuliaAnnXXX888| 色婷婷六月| 中文字幕二区| 去干网最新版| 国产综合久| 99日精品欧美国产| 欧美丝袜中文字幕07在线| 最近2019中文字幕国语免费版| 一牛一区二区三区久久| 自拍内地三级在线观看| 亚洲射综合网| 26uuu欧美日韩| 欧美亚洲日韩16色| 亚洲二区精品在线观看| 欧美精品久久| 99久久综合网| 欧美性性性| 91亚洲黑人| 欧美狠狠干| 99久久综合| 韩日性爱av| 极品色电影院| 日韩午夜啪啪视频| 999精品女人| 色噜噜国产在线| 国产午夜在线观看| 麻豆伊人网| 久久精品国产96精品亚洲拳交| 欧洲精品一二三在线| 亚洲各类熟们中文字幕| 精品人妻15区| www四虎| 在线综合 亚洲 欧美中文字幕| 久久同城AV| 中文字幕人妻资源在线| 校园春色宗合网| 婷婷97| 电家庭影院午夜69久久夜色精品国产69乱 | 三上制服丝AV| 国产福利av精彩对白| 久久九九久精品国产尤物|国产精品爽黄69天堂A片潘金莲,国产亚洲精品第一综合 | 91丨九色丨国产丨人妻在线| 久久深夜无码| 熟女乱伦二区| 岛国在线免费视频| 亚洲综合伊人| 伊人大香蕉在线| 少妇人妻好深太紧了vr91| 另类老少妇| 91久久久久久久久久久| 殴美在线AⅤ| 国产高清亚洲日韩一区 | 天天搞在线综合网| 怡红院成人视频| 精品无码人妻一区二区免费蜜桃| 开心五月激情网| 欧洲亚洲国产综合在线| www国产精品| 亚州乱码中文字幕综合久久久| 欧美丰满熟妇XXXX性ppX人交| 99热伊人| 色娱乐色呦呦夜夜夜夜av| 色噜噜婷婷| 国产午夜福利电影免费在线观看 | 亚洲?V高清一区二区三区尤物| 97超碰免费人人性爱| blacked精品一区国产| 9久久精品| 一区二区三区网站日日骚| 久久久久国产精品喷潮免费观看臀| 久久久熟女一区| 丝袜制服字幕在线| 桃花色涩综合影院| 日本十八禁免费看污网站| 果冻传媒A片一二三区| 1区2区3区在线视频| 激情久久av一区av二区av| 眼镜人妻101.com| 熟女探花啪啪| 欧美视频一区二区三区| 中文字幕精品专区搜索结果91| 麻豆AV短剧| 精品久久視頻在线| 激情婷婷| 中文自拍欧美影视| 国产精品无码在线| 免费αⅴ在线观看| 夜夜草我| 亚欧毛片基地国产毛片基地| 91福利网在线观看| 蜜臀一区二区三区在线| 96麻豆精品一区二区三区| 97伦综合| 96超碰网| www欧美91| 麻豆亚洲AV成人无码久久精品| 人妻丰满熟妇av无码区蜜桃| 91插B网站| 久久噜噜噜精品国产亚洲综合| 人妻激情在线视频| 欧美色图 人妻| 精品然女一区二区| 四虎免费看黄| 抽插爽| 日本男人插女人的逼黄色| 色天堂综合| 亚州 综合 色图| 99蜜桃臀久久久欧美精品网站| 人妻插插人妻人| 久久99999| 亚洲素人网| 久久久久久久9最新免费视频观看| 色www精品视频在线观看| av麻豆啪啪| 操逼短片| 亚洲资源站| 欧美加勒比| 情趣丝袜无码操逼视频| 亚洲国产一级黄色视频| se01国产在线视频| 黄色一级视| 婷婷91| 国产久久一区二区午夜| 天天操女人| 97er欧美性| 蜜桃网熟妇| 天天爽天天操啊啊啊| 男女无套 免费网站| 日本精品一级二级三级| 欧美日韩国产高清在线一二三区 | 九九综合久久| 中文字幕在线观看网页| 欧洲乱码一区二区| 嗯~啊~轻一点 视频| 欧美热图99| 国产在线综合网| 欧美黄片欧美黄片xxx| 亚洲激情久久| 欧美日动态视频| 91在线色| 久久嫩草| 夜夜影视四色| 久久精精区一区二区一蜜桃一区二区| 中文在线久久字幕| 最新制服中文第一页| 国产精品久久久| 在线人人人人人人精品超| 激情五月综合| 国产99999久久精品| 毛片一区二区| 亚洲乱码国产乱码精网站| 老色69| 久草综合京东| 亚洲国产97在线精品一区| 超碰在线欧美性爱激情| 国产精品熟女丝袜一区二区| 超碰97在线 欧美 国产| 男人天堂2019| 欧美人妻精品一区二区| 欧美熟妇乱码在线一区| 老司机福利社视频在线观看| 久久青青草原免费视频| 久久超碰爱| 国产丝袜高跟美女av免费观看| 免费AV中文网在线观看| 欧美丝袜制服久久| 91黑丝少妇| 精品一级| 少妇高潮对白在线观看| 天天天乱色综合全| 色综合av综合久久| 六月丁香网| 97在线日韩中文字幕| 欧美黄色片在线播放| 色婷婷电影网| 中文字幕午夜精品久久久| 欧美性生活男人的天堂| 小草精彩毛片| 91人人| 一块操欧美| 干妹子| 一二三区操逼国产91| 天天射影院| 蜜臀久久99精品久久久久久成人小说 | 成人在线日韩| 成人青青草原伊人| 免费黄色A片| 亚洲高清男人天堂| 91久久青青草原精品| 日本人体九九九九九九| 欧洲人妻视频| 婷婷性爱| 成年人黄色| 夜夜操2028| 伦理第一页| 欧美有码激情视频一区二区三区| 欧美劲爆第一页| 亚洲熟女中文字幕在线| 伊人嫩草| 婷婷亚洲五月***久久| 日韩欧美中文字亚洲慕| 日韩乱插| 情色图区| 97国产精品国| 看免费的黄片| 草久久久| 亚洲黄色a级片| 国产久9| 国产亚洲综合欧美一区| 2017天天插| 亚洲欧洲小说图片视频| 国产二区三区免费视频| 欲射影视| 亚洲人妻中文高清| 色97欧美| 任我爽视频在线观看| 伊人热综合| AV中文字幕剧情1区2区3| 老司机老司机午夜影院| 欧美激情亚洲情色| 国产又爽又黄| 丝袜加勒比| 九色 人妻 大香蕉| 狠狠操官网| 中文字幕一区二区三四五区日日骚| 日韩成人性爱电影在线播放| 果冻传媒A片麻豆熟妇人妻| 亚洲不卡AV在线| 一级片在线观看高清无码| 国产和美国毛片| 色五月大香蕉| 91被操| 91国产伊人大香蕉| 色五月激情网| 日韩性爱1级片视频| 久久久久九九九九九| 天天综合网站| 日本 色 导航| 久久精品导航| 999 久久久| 日韩欧美视频青青| 91被操| 久久三区四区| 涩涩久久精品| 97天堂| 97在线观看播放视频| 一本久道久久综合狠狠爱一密臀精| 91人妻人人妻| 最新日韩黄片| 黄色操人| 久久久555| 走光一区92下载| 欧洲免费一区二| 国内自拍 日韩激情 99| 亚洲AV秘无码一区..| 偷拍导航视频网站| 中文字幕天天操| 97超碰碰碰| 亚洲欧美日韩综合在线尤物| 最新亚洲黄色免费电影| 中文字幕一区二区三区四五区| 欧美在线啊啊啊 | 人妻酒店出差被中出免费在线播放| 夜夜操狠狠操| 国产福利精品最新在线 | 国产乱码精品久久久久久| 麻豆久久视频在线地址| 台湾一区国产高清在线| 午夜一区| 9 1果冻精品视频| 日日日骚女人精品| 欧美少妇第一页| 97超碰碰碰| 手机看av网站在线看| 日本免费人成视频播放120秒| 日本欧美中文字幕| 欧美色图99| 色九九九九九九| 国产一区二区三区久久精品太古里| 精品一区二区3区| 日本人妻A片成人免费看片| 亚洲αv一区二区三区| 日本操逼aaaaa| 秋霞 色色| 男啪女色黄无遮挡免费观看| 深喉吞精| 殴美性天天| 无马一区二区| 制服少妇欧美| 和协影院中文字幕三区| aaa淫乱视频| 日韩av女优在线免费一区| 大香蕉伊人色偷偷在线| 婷婷在线视频| 懂色AV蜜臀无码精品APP| 永久免费发布性爱网| 国产精品色片一区二区| 97操| a男人的天堂久久一级A毛片| 欧美v日韩v亚洲v最新在线| 欧美色蜜桃97| 久久久青青草| 欧美色图色综合| 日韩精品午夜操呦呦不卡影院| 天天色综合影视网| 欧美激情精品| 综合熟妇一区二区三区| 少妇贴图| 欧美激情综合网| 国产精品午夜福利亚洲综合网| 精品人妻一二三| 在线观看一级α片刺激高潮视频| 综合国产影视三级| 在线观看高清AV| 麻豆国产96在线| 天天日日夜夜| 九九九网页| 日韩精品99久久久久久中文字幕| 夜夜操一区二区| 免费看国产大AB| 校园春色 亚洲| 少妇久久久| 涩综合导航| 操屄不卡视频| 天天看天天综合成人网| 欧美制服网站美腿丝袜| 超碰人妻中文在线| 91精品在线播放| 这里都是精品| 五月天我淫我色av| 国产精品久久久久中文字幕| 黄色AAAAAAAAAAA大片| 97色碰| 亚洲激情色片| 色偷偷色偷偷欧美日韩| 亚洲男人天堂视频| 国产毛片片精品天天看视频| 亚洲精品无码成人久久久99| 国产真实野战在线视频| 蜜桃久久综合视频| 色麻豆AV| 中文字幕成人乱码熟女精品国50 | 岛国网址国产 | 国产青青综合伊人| 亚洲精品97久久| 18禁美女裸体无遮挡啪啪| 久久久A∨| 日夜干射色啊| 亚洲日韩国产精品| 亚洲无码AV九九九| 久久精品国产精品亚洲艾通辽熟妇| 欧美久久婷婷| 蜜臀久久99精品久久久久久酒店| 国产欧美在线观看免费观看| 女人午夜视频777| 极品内射| 大香交| 级做a爱无码性色永久免费| 大香蕉五月天婷婷| 伊人aaa| 天天网综合| 一级A啪啪啪啪| 91强在线播放| 啊啊啊爽爽| 婷婷视频网| 蜜桃视频啊啊啊啊| 老熟女综合网| 天天操夜夜嗨| av操操不卡| 色综91| 欧美日韩岛国大片在线观看| 日韩不卡码| 人妻无一区二区三区| 久久久97| 日韩丨制服丨中文|在线| 久久首页| 成人在线视频一区| 亚洲欧美不卡线| 久久丁香五月天| 四季av一区二区凹凸精品小说| 久久精品 六十路 熟女 欧美| 亚洲老熟妇xxx| 久久激情亚洲精品无码?V| 91爽啪| 一二三区视频在线观看| 亚洲欧美日韩夜夜| 啊啊啊啊啊啊啊网址在线观看| 超碰午夜| 91啪9色| 国产无码精品成人| 精品无码一区二区| 激情一区二区| 亚洲情色电影网| 日日爱99| 亚洲春色激情小说| 97欧美精品| 超碰激情808| 在线观看一级α片刺激高潮视频| 久久久9品一区二区三区| 久久丝袜| 久久婷婷色综合一区二区三区| 欧美少妇人妻| 性爱乱伦一区| 9久9久9久9久视频网站| 色9999日韩国产| 久久αⅴ| 亚洲熟女国产综合另类| 人人妻人人爱人人玩| 国产精品青青草| 欧美Ⅴ性爱| 一级黄碟在线观看| 日韩综合无码色欲vv| 91成人久久| 日本一级性爱| 色亚州人久干视频在线观看免费版| 大香蕉乱级| 日韩ab网| 欧美日韩色综合网| 啊啊啊轻点在线观看| 狠狠综合网| av毛片aaaaa免费看| 欧美久久久15P| 亚洲精品性爱片| 亚洲极品| 中文字幕高清20页视频| 欧美同性恋 的搜索结果 - 91n| 亚洲.欧美.丝袜.中文.综合| 2021国产成人精品久久| 欧美情色贴图| 俺去俺来也在线www| 97色综合中文网| 丝袜综合| · —级AA伦aa坐爱午夜极速ⅴA一区天天噪天天噪天天噪 | 裸模AV女优| 午夜福利精品| 中文字幕精品码亚洲| 热久久九九热| 超碰国产精品无码| 日韩久射综合| 伊人久久大香蕉线AV五月天| 日本日皮视频逼| 国产白丝av| 免费97视频| 少妇蜜汁| 久久精品店| 91精品91久久久中77777| 日本东京热大香蕉a片| 97啪啪| 国产一区二区三区免费视频在性观看| 99re在线视频| 青娱乐 成人娱乐在线| 久久久精品无码亚免费| 极品销魂美女一区二区| 亚洲综合夜色| 激情四射婷婷四五月天| 欧美劲爆视频一区二区| 亚州,欧美在线| 欧美色图成人网一区二区| 欧美亚洲日韩人妻在线观看| 国产精品毛片?v一区二区三区| 精品少妇一区二区| 成人五月天色网| 天美传媒国产原创中文字幕亚洲欧美另类 | 精人妻无码一区二区三区伊人直播| 欧插网站| 激情综合久久| 日韩无码黄色片| 美女诱惑一区| 91老妇女| 天美传媒av在线| 欧美婷婷久久| 伊人影院中文字幕| 成人综合久久精品色婷婷| 中文字幕中文字幕一区二区| 久久91| 美女上床网站| 91N综合网在线| 久久日本熟女精品一区| 精品国产一区二区三区久久久蜜臀 | 精品免费1| 丁香五月久久| 日韩Va亚洲va欧美Ⅴa久久| 日韩性爱小视频| 亚洲欧美不卡线| 亚洲欲色| 9997se| 欧美色图片欧美色图| 亚洲性图91| 大香蕉欧美国产日韩高潮| 青青草日韩无码| 婷婷五月天伊人| 婷婷亚洲天堂| 亚洲激情av| 探花熟女,姿勢到位,體驗感也到位| 色翁荡息又大又硬又粗又爽| 一级做受视频免费是看美女| 东北女人操逼| 亚洲中文字幕一区二区| 色婷婷五月综合激情中文字幕| 欧美日韩大香蕉| 色九九综合AV| 丁香五月天久久精品视频一区二区三区| 去干网最新版| 国产AV高清AV无码| www亚洲免费| 亚欧免费| 久久久久久亚洲Av无码精| 国产又粗又大硬免费色网视频| 91人妻少妇| 亚洲无992tv| 热99这里有精品综合久久 | 中国东北熟女老太婆内谢| 熟妇xxxxx性春色| 在线观看成人性爱免费小视频| 欧美综合天堂|