亚洲有码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
返回資訊列表
天天综合网91入口| 婷婷久月| 亚洲有码第一页| 国人欧美精品一区二区| 亚欧免费| 人人妻人人爽一区二区三区| 亚洲91大片| 超碰亚洲欧美日韩无| 青娱乐二区免费| 99re在线视频国产| 欧美天堂日韩三级国产传媒| 中文字幕在线观看视频www| 日本在线观看网址| 亚洲风情在线观看| 啊啊啊水好多| 中文字幕在线第二页| 嗯阿好爽好紧| 亚洲色人妻综合| 色色五月丁香| 天天射,天天操,天天爽-国内精品一区二区三区-成人AV | 新久久AV| 韩国一级婬片A片无码天美| 色悠悠伊人网五月天| 色诱avtt| 国产夜夜艹| 日韩AV电影网站| 中文字幕av乱伦| 高清无码一区二区三区| 精品久久久av无码免费| 深夜国产福利| 久久久久久久免费A片国产成a人亚洲精∨品无码 | 大香蕉之青青草原| 中文幕97| 99少妇| 超碰在线97国产| 成人老鸭窝人人在线视频| 91视频国品一二三区| 久久精视频美日韩在线视频| 亚洲少妇色| 亚洲精品丝袜-不卡成人免费……| 一区二区三区黄色片a| 亚洲一区日韩精品| 国产亚洲精品农村妇女 | 婷婷五月影院| 18一区二区三区| 操狠狠| 亚洲色图久久成人| 欧美天天谢综合网| 一本色道久久综合狠狠操| 色香综合天天影视综合 | 九九久久九九久久| 老司机午夜福利视频一区二区| 碰超人人在线一区二区三区| 国产蜜臀在线| 天天躁日日躁狠狠躁| 92一区二区| 涩综合导航| 99视频这有这里有精品| 国产精品在线网站| 久久大香蕉手机高清视频| 五月天丁香| 国产精品对白内射| 欧美色97| 97天堂| 人人做,人人操,人人摸| 成人亚欧免费视频| 偷拍 精品另类 凸凹了四区| 天天日日本| 人妻少妇色综合| 中文字幕黄色一起草| 青青操国产夫妻| 极品色| 久操网视频| 国产日韩在线播放| 亚洲国产剧情少妇激情| 死我十八禁| 久久中出| 九九碰九九爱97超碰| 久久婷婷国产一区二区色| 久久亚洲天天做| 日日97| 91精品人妻偷情| 老司机射| 久久久专区| 丁香五月婷婷啪啪| 亚洲 另类 丝袜 自拍 动漫| 国产精品视频播放| 亚洲九九九九| 中文字幕av乱伦| 清纯唯美激情四射| 久久久久国色αv免费观看| 91丝袜激情在线| 国产三级片在线观看| 激情无码日韩| 国产传媒1234区| 欧美丝袜中文字幕07在线| 欧美成熟性爱精品| 日韩有码免费视频| 亚洲欧美爆| 哈哈操电影| 无码丰满熟妇一区二区浪潮AV| 91超级碰碰碰| 熟女熟妇伦久久影院毛片一区二区 | 精品一二三区久久AAA片| 久久婷婷六月综合| 天天综合网~91| 无码精品久久| 亚洲 另类 丝袜 自拍 动漫| 夜夜草我| 欧美色图天堂网m| 91综合网在线| 啊啊啊好爽快点啊啊啊嗯嗯| 丝袜加勒比| 日韩色欲久久一二三四区| 江都AV在线| 久久久久女教师免费一区| 乱论91| 亚洲永久AV无码精品秋霞| 久久区| 91久久久久久| 屁股久久久久久久久久| 天天综合网~69| 夜夜性| 久久99操天天日| 中出欧美| ,国产乱人伦精品一区二区三区| 老鸭窝成人| 亚洲精品日韩国产欧美| 欧美色图 色综合图| 欧美成人都市人妻| 一区二区乱码福利| 久久大线蕉一区| 久久久久久99AV无码免费网站| 女色视频社区| 日韩欧美tv一区二区在线观看| 1024手机看片欧美日韩| 久久婷婷五月综合| 啊啊啊啊啊啊好多水| 日韩久久三区| 老子午夜伦不卡影院| 精品免费国产二区三区| 日本日皮视频逼| 成人草草视频| 亚洲AV成人无码一二三久久 | 欧美最婬乱婬爆婬性视频| 嗯嗯啊啊操我| 亚洲91网站| 亚洲熟女中文字幕在线| 天天日天天干少妇日| 欧亚成人| 一区二区三区日韩欧美| 精品一区二区成人| 九九九九精品| 欧亚韩国999| 激情综合五月| 日韩精品一区二区日韩| 少妇熟女一区二区三区| 久久m| 欧美少妇色图| 天操天操夜操夜月操月年年操操| 欧美亚洲综合色| 国产91乱伦| 丝袜AV一区二区三区| 97色欧州| 日本色色色| 国产强奸无码乱伦| 一本色道久久综合狠狠操| 天天操狠狠日夜夜干超碰撸com视频在线观看 | 久久久久久久久久精| 日本肉体xxxx裸交| 26UUU欧美激情一区二区| 玖色av| 中文字幕在线观看网页| 国产玖玖| 在线强奷到舒服的无码视频| 日韩成人性日韩成人性爱视频在线免费观看 | 久久久999国产精品| 伊人97超碰| 午夜寂寞欧美| 亚洲精品一二区| 91五十路| 青青草中文字幕| 啊啊啊啊啊舒服| 久久免费看高潮毛片韩国| 99在线免费观看| 久久久无码av精| 国产日韩无码一区二区三区久久区| 大香蕉日韩欧美| 亚洲天堂人人妻| 天堂九九九九九九九九九| 亚洲欧美一区二区三区一猛片| 精品人成视频在线观看| 超碰色97| 中文字幕国产| WWW.操逼.COM| 精品无码久久久久久久久果冻糖心| 四虎免费视频| 五月天人妻综合| 校园春色亚洲无码| 国产精品另类| 超碰色美女| Aa东京男人的天堂| 嫩草 我啊~嗯~在线| 一本大道综合伊人精品热热| 有码色中文字幕在线观看| 亚洲国产欧美日韩精品一区二区三区,国产一区二区三区在线看片,欧美性猛交 XXX | 亚洲国产一级黄色视频| 97综合国产| 欧美天天搞| 97天天| 欧美天天综合网| 天天激清| 亚洲高清无毛一区二区| 国内精品久久人妻性色av| 国产精品ww久久| 超碰成人人人爽人人爽| 欧美日韩午夜精品一区二区三区| 五十路六十路素人熟女| 国产高潮AA片免费看| 51一区二区三区| 久久9 9 9精品| 中文字幕在线免费观看视频| 免费久久精品麻豆一区二区av| 欧美的性爱网站免费| 91精品无码久久久久久久| 熟女人妻一区二区三区免费看 | 国人欧美精品一区二区| 亚洲性爱无码乱伦av| 人妻-91porn| 色综合99| 欧美情色男人的天堂| 日本一片一区| 啊啊啊啊啊啊啊在线| 男人的天堂日韩| 98超碰欧美| 日本影视久久免费| 久久久久久亚洲中文| 黄片com.| 色婷婷丁香五月| 夜夜夜久久| 熟女熟妇一区二区三四区| 91AV天美在线视频| 九九人妻| 午夜一区| yaouchengrenav| 综合伊人激情| 久久久无码av精| 国产又爽又黄| 久久久性爱视频| 女上位精品在线| 风韵犹存大大大大香蕉| 能在线播放的国产三级| 欧美日韩国产中文超碰| 中文字幕乱偷人妻久久艾草网| 97 国产精品| 凹凸视频在线一区二区| 国产无马视频| 97超碰热线| 精品日韩产品在线,日韩在线不卡视频,欧美日韩免费专区/久, | 蜜桃av色偷偷av老熟女| 久草免费在线一区二区| 日日骚 av| 国产suv一区二区三区6| 强奸乱伦大香蕉| 粉嫩国产精品久久粉嫩| 亚洲区限制级 99| 九九九九国产| 久久人妻丝袜一区二区三| 日韩电影天堂视频二区三区| 啊啊嗯嗯好爽| 精品久久久亚洲AV成人网站| 亚洲欧美setu| 国产三级在线现体验区| 久久一二区四| 亚洲全色网| 国产亚洲禁久一区二区| 成人精品一区二区三区| 国产亚洲色停停久久99精品91| 亚洲经典啪啪| 大香蕉伊人75| 少妇人妻好深太紧了vr91| 日韩精品人妻一区二区| 91美女视频在线观看| 天天操夜夜操狠很操| 亚洲综合色男人网| 大粗鳼巴久久久久| 日韩乱插| 玖玖资源视频一区二区三区| av在线一区二区三区| 江都AV在线| 囯产精品久久久久久久久久二区三区| 免費黃色視頻觀看一| 人妻黑丝袜电影| 日韩熟女操逼| 97玖玖超碰| 中文字幕在线免费观看2| 天天爽爽爽爽| 日本精品一区二区三区四区的功能| 人妻中文字幕日韩电影| 色踪合AV| 性做久久久久久久| 大香蕉手机在线| 人妻日日干| 亚洲欧美变态| 91欧美高清| 91国模| 亚洲操操| 女性91网站| 欧洲综合视频| 欧美激情另类一区二区| 岛国不卡超碰护士AV在线播放| 国产操操日韩三级黄| 精吧天堂| 欧美综合自拍成人自拍第二十页| 97香蕉网| 北京美女一区二区| 大色综合网| 久久黄黄黄| 超碰在线91| 亚洲精品久久久久毛片A片拉屎 | 日韩av无码网站| 欧美最婬乱婬爆婬性视频 | 欧美啪啪女女| 91色狼| 九九热超碰97亚洲最新香蕉| 天天躁日日躁XXXXYY| 欧美姓爱综合网| 久久九七| 色婷婷香蕉| 久久精品国产亚洲5555| 操淫穴亚洲五月丁香 | 4虎在线视频| 玖玖婷婷五月天| 天天上日日上日韩精品| 婷婷五月天色网| 日韩亚洲美女一区久久| 中文字幕乱在线伦视频中文字幕乱码在线 | 校园春色亚洲| 亚洲熟久久| 色综合色综合网| 亚洲成人激情小说视频| 狠操91,com| 6080yy午夜理论三级一区二区三区无码| 欧美日韩大香蕉| 欧美日韩亚洲电影| 伊人久久大香蕉线AV五月天| 九九综合| 亚洲一区二区性爱电影| 黄片免费日韩| 蜜臀99久久国产| 五十路熟女工口 | 中文字幕乱妇免费视频| 97一区二压| 欧美亚洲综合色| 中文字幕狠狠玩| 九九九九热| 国产天天噜一噜久久久| 欧洲精品网| 另类老少妇| 日韩午夜国产| 欧美 亚洲 大香| 正在播放:深夜激情大战,自带黑丝袜全力输出骚穴 | 330Dv国产女人终合视频极品人与兽| 美女黄频a美女大全免费皮| 日韩成人性日韩成人性爱视频在线免费观看| 91色色综合| 亚洲色图欧美色图制服丝袜| 偷窥自拍亚洲色图| 久操99| www.99视频| japan日本高清乱xxxx| 国产精品麻豆成人av| 97国产人人| 天天操妹子| 97se亚洲| 少妇色欲综合网2| 国产外初女出血视频| 日日夜夜草草草| 一区二区三区四区五区高清无码永久视频| 性爱久久| 97久久资源| 猛交交| 国产av尤物| 国内精品伊人久久久久影院会| 狠日操| 日韩av不卡在线看| 精品人妻中文字幕4399| 亚洲系列第一页| 97人妻免费中文字幕| 国产精品视频麻豆入口| 人人操人人摸人| 男女激情黄色网址| 欧美劲爆视频一区二区| 性做久久久久久免费观看软件 | 九九九九九九视频| 五月开心久久AV官网| 老鸭窝黄色视频网站| 久草精品一区| 69久久| 久久在肏| 日本精品五区| 人妻一区二区三区视频| 国产极品美女高潮无套在线观看| 综合操逼| 99无码视频| 性站 | 97资源站国产精品| 97超碰超碰| 超碰在线欧美性爱激情| 亚洲国产奇米影视久久| www.久久久久| 欧美日韩淫加| 98超碰日本| 五月天婷婷社区| 午夜精品久久久| 亚洲春色欧美激情自拍| 午夜精品探花| 国产日本熟女顶级一区二区三区视频 | av爱爱爱| 无遮挡猛进视频免费无限观看| 精品久久99| 91扒丝袜综合在线| 男人天堂最新手机版在线青青草| 欧美乱欲| 亚洲AV秘 精品久久老牛影视| 国产日韩欧美三级片| 久草综合京东| 亚洲图片视频小说| 国产无码精品高清| 五月天婷婷色| 大香蕉在线视频重口味毛片在线| 亚洲日韩狠狠撸视频| 欧美激情综合| 最近的最新的中文字幕视频| 色妹子A V| 嗯嗯啊啊视频一区二区三区| 天天色欧美| 国产av强奸美女| 丁香激情五月| 一二三卡欧美日韩人妻免费精品| 碰碰97| 亚洲偷拍自拍在线视频| 久久偷拍人| 日本欧美不卡| 欧美日韩操逼嗦吊| 亚洲色图美腿丝袜| 亚洲成a人v欧美综合天堂下载| 国产精品一二三在线看| 欧美亚洲一区二区久久久婷精品大包诱| 人妻喷水| 人人摸人人摸人人干| 九九热男人天堂| 欧美日韩制服| 中文字幕亚韩| 毛片麻豆91糖心精品毛情片| 黄色成人网久久久久久| 久操视频免费在线观看| 97超碰大| 欧美久久九九| 四虎免费在线观看| 嗯嗯啊中文字幕| 久久九九97| 色婷婷丁香| 亚洲色综网| 18禁的网站在线| 91丝袜在线视频| 人妻中文字幕精品无码| 久久久久密臀一区二区| 老司机天天操| 亚州国产成人精品女人久久 | 噜噜在线| 91精品人妻| 超碰人人妻| 在线不欧美| 久久久久日本视| 国产深喉视频一区二区| 久久久久久夜夜夜夜夜| 啪啪性爱免费视频| 青青操在线亚洲视频观看欧美在线 | 欧美亚洲日本激情在线| 国产蜜臀在线| 国产久久一区二区午夜| 欧美综合天天| 91欧美丨精品丨入口| 久草国产在线视频| 人人操人人精品影片| 伊人久久大香大香线蕉中文 | 色婷五月| 国产精品片| 亚州操操穴网| 先锋色眉乱伦资源| 女人天堂网| 91碰碰| 97欧美超碰| 色婷婷婷五月天激情四射| 在线色导航| 91亚洲丝袜熟女| 日本片日本片祼观看网站在线看中文版网页在线看 | 色综合中文字幕不卡| 老子午夜伦不卡影院| 加勒比海成人视频网| 另类 日韩 熟女| 精品久9| 日韩少妇丰满亚洲| 69精品久久久久中文字幕| 超碰97日韩| 夜夜操夜夜爽夜夜高潮| www黄片免费看com| 欧美91在线| 国内97干免费看| 久久激情网| 日本αv| 97视频在线免费播放| 男人的天堂不卡一区二区| 青娱乐999| 情色五月天就去干| 久久亚洲天天做| 五月天婷婷久久| 免费一级性爱久久| 欧美天天射| 人妻无码视频一区二区三区久久| 北条麻妃99精品青青久久| 亚欧成人中文字幕一区| 色99999| 精品人妻伦一区二区三区久久| 亚州伊人色综台| 黄色小视频日本txt| 国产精品视频内谢女人| 欧美色九九| 强奸熟女一区二区三区| 中文字幕乱码人妻一区二区三区,99精品 | 亚洲色 国产 欧美 日韩| 天美传媒精品一区二区| 日韩日韩日韩-国产乱码精品一区二区| 91色爽欧美| 玖玖综合.com| 久久九九综合| 无码免费精品高清| 国产乱码精品一区二区三区四川| 欧美片第一页| 91丝袜美女视频| 国产尤物在线三区| 天天综合网亚洲综合网| 久久日本熟女精品一区| 黄总AV色图| 色婷婷aV一区二区三区麻豆综合| 99热成人| 素人播放一区| 激情文学网伊人| 99啪啪| 亚洲av无码成人精品国产| 浪人综合网| 最新中文字幕精品在线| 中文精品一区二去| 操逼国产免费| 亚洲情色中文字幕一区| 国模不卡| 欧美日韩 强奸乱伦| 人人潮人人摸| 婷婷丁香五月天亚洲天堂网| 一个人免费HD91视频| 国产第25页在线观看| 亚洲无吗在线视频| 无色无码| 亚洲无线码一区国产欧美国| 被体育老师抱着c到高潮| 思思热免费视频观看| 大地资源在线观看中文第二页| 操婷婷逼| 亚洲一区二区麻豆影院| 后入 亚洲 美女 射| 欧美人妻二区三区| 亚洲涩涩| 日日干日日摸| 久久春色| 久久精品国产AV一区二区三区| 欧美激情视频在线一区| 太久视频| 色婷婷成人| 日韩在线女优天天干| 欧美日韩淫加| 91处女在线视频| 欧美性高潮| 国产400孕妇孕交群| 午夜福利国产欧美日韩夜夜| 嗯啊抽插大香蕉网页| 国产精品久久久久久 百度| 五月香婷婷| 一牛影视久久久一区二区三区| 殴美综合色88| 99色在线| 日韩三级在线观看网站| AV免费在线播放一区| 99精品网| 亚洲天堂人人妻| 97亚洲色图| 国产无码三级视频在线观看| 亚洲二区精品在线观看| 夜夜夜久久| 91美女視頻| 久草午夜| 国产精品免费视频人成| 性色avv| 91女优在线观看| 神马久久久久久| 国产偷拍自拍在线视频| 丁香五月天婷婷姐| 四虎免费在线播放| 日韩无码三级影院| 最新加勒比丝袜在线| 亚洲资源网| 国产精品com| 蜜乳AV网址| 69综合网| 精品无吗m| 日韩欧美午夜视频在线| 欧美日韩国产中文精品字幕自在自线,| 91九九九吃| 亚州熟女乱伦| 久久性爱视频| 欧美在线|亚洲| 亚洲成人在线高清| 俺去久久| 国内一级精品| 综合色色婷婷| 色香综合天天影视综合 | 91nbbbbbb| 在线免费观看高清无码视频 | 亚洲在线a| 国产福利精品最新在线| 一二三四视频在线社区中文字幕| 丝袜人妻av一区二区| 丝袜美腿诱惑亚洲欧美视频在线观看| 欧美精品欧美精品系列 | 91人人看| 98久久| 天天日天天插| 亚洲人妻爽爽爽| 国产成人无码久久精品| 后入日本1234| 国产一区二区欧美日本| 亚洲精品黑丝| 粉嫩av在线一区二区| 97超碰精品成| 可以免费观看的日韩av毛片| 美女AV一区二区| ,成人免费啪啪视频| 97久久精品国产| 丰满美女一级毛片在线播放| 色婷婷成人综合| 五码视频在线观看| 东京热av男人的天堂| 亚洲AV成人无码一二三久久| 天天干,夜夜爽| 日韩欧美资源| 亚欧性爱ab| 中文字幕 一区二区 亚洲无码| 男人的天堂无码| 99久久久久久久久| 亚洲素人综合| 9色在线| 欧美图片校园春色| 97色色色| 精品少妇999| 久久久久久久久久久人妻| 国产偷人伦激情在线观看| 久久久com| 九九九精品成人免费视频小说| 欧美日韩免费专区在线| 国产狂喷潮在线精品| 91久久堂| 人人操人人狠狠操| 国产精品一区二区三区免费视频| 日本有码影片下载| 亚洲春色欧美激情自拍| 中文字幕一区二区三四五区日日骚| 日韩精品黄片免费观看| 天天操天天干美女网址导航| 97超碰jingpin| 97人人夜夜精品视频| 91超碰碰在线| 五月丁香在线| 亚欧性爱无码| 国产麻豆91欧美一区二区久久婷婷国产精品| 亚洲综合色网| 日本成人A片网站| 舔人妻中文免费视频| 日本久久网| 岛国福利在线精品播放| 日夜尻逼网| 好湿好紧好爽 视频| 成人精品一区二区91毛片不卡| 亚洲中文字幕久久无码精品| 中文字幕国产精品1区| 青娱乐亚洲自拍| 亚洲熟久久| JuliaAnn丝袜熟女系列| 综合激情一一91| 婷婷五月天激情网| 内射小黄片| 性欧美999| 自拍欧美| 五月婷色| 日韩精品黄片免费观看| 日韩在线观看三级电影| 天天操狠狠日夜夜干超大胆开放com大香蕉视频在线观看 | 欧美情色亚洲| 曰本91情色| 东京热激情视频一二三区| 在线观看免费视频国产| 色噜噜狠狠色综无码久久合欧美| 日韩无码极品| 午夜一级免费毛片| 五月天久久人妻| 亚洲免费97免费| 欧美色婷婷| WWW啪啪的com| 国产精品美女久久久久久网站| 激情视频图片| 啊啊啊不要好爽日韩无码一区| 亚洲综合五月天| 婷婷色网| CCYY草草影院地址入口| 97人人夜| 中国熟妇| 91国产丝袜美女| 亚射在线| 日本韩国一本产品小视频日本韩国一本产品久久久产品小视频日本韩国一本产品久 | 91欧美大片| 在线播放欧洲免费av| 欧美亚洲高清不卡| 97色色国产视频| 欧美色图天堂网m| 日韩性色b| 日本网色| 蜜乳中文字幕a在线| 欧美色图片色哟哟| av日韩中文字幕| 美女黄码视频午夜| 人人爽人人精品乱人伦AV| 五十路熟女工口| 大香蕉天天看妹子| 精品亚洲俞拍视频一区| 台湾肥佬网一区二区三区| 久久综合久久综合人久久夜精品| 91大胆欧美| 久7色| 成人情色一区二区| 天堂九九九九九九九九九| 97九色人妻| 国产精品情侣啪啪| 男人的天堂色偷偷青青草视频婷婷网| 欧美熟妇精品黑人巨大一二三区| 日本熟人妻中文字幕在线|...久久国产精品-国产精品_日本一区二区三区中文字幕 | 亚洲中文字幕有码视频一区二区三区| 丝袜熟女2P| 日本国产欧美高清在线| 久久久久国产精品久久久| 亚洲精品国产精品乱码不99| 被体育老师抱着c到高潮| 欧美日韩婷婷中文| 免费av大片| 人妻熟女av国产网站| 人人操AV| 亚洲美女色图| 欧美色宗合| 加勒比在线视频一区二区三区| 熟女这里只有精品6| 国产精品午夜福利视频| 天天综合站| 亚洲黄色AV电影| 欧美乱伦专区| 日韩一级特黄av毛片| 日本在线视频导航| 国产 亚洲 一二三四| 睡产熟女乱伦| 盗摄女人妻在线| 麻豆这里只有精品| 日本精品88888888| 久湿久久| 天久久久噜噜噜久久国产精品爽爽| 91夜色| 精品人妻一区二区视频| 国产日本久久免费精品| 东京太热久久久| 久久99999| 91爱欧美| 国产精品久久久久婷婷二区次| 国产肏逼网站| 超碰在线看| 97超级欧美| 啊啊啊啊好疼| 久久riav中文精品| 日本三级韩三级99久久| 超碰在97| 日韩性爱啪啪视频| 九九探花视频在线观看| 艳美熟妇先锋一二三区| 啊嗯嗯啊好大好爽| 网友自拍第一页| 午夜福利视频在线一区| 美女在线H91| 超碰4A| 人人玩人人添人人澡免费| 亚洲欧洲综合av在线| BBBBB97COM| 91亚洲影视| 午夜福利在线合集| 亚洲AV乱码专区国产噜噜亚洲| 夜夜嗨一区二区三区三州加勒比 | 人人艹亚洲| 中文字幕av色| 蜜臀99精品国产高清在线观看| 性在久久久久久| 综精品久久久aaaa| 亚洲国产97| 熟女乱伦二区| 麻豆区久久久久亚| 啪啪视频亚洲第一| 欧洲射精91| 国产美女高潮| 国产欧美精品日韩区二区麻豆天美| 色婷婷日韩精品一区二区三区| 久操网无码在线| 大香蕉综合| 另类图片综合| 久久国产三区| 色一射色一射| 国产偷拍自拍在线视频| 91老司机精品| 久久精品免费| 中日韩免费看男女操逼大全| 欧美性暴力| 五月天婷婷小说| 九九精品网| 亚洲aV性爱| 白嫩91在线亚洲| 中文字幕狠狠玩| 天天情欲宗合网| 天天色综亚洲91污| 在线播放中文字幕| 日韩去日本高清在| 日韩欧美麻豆| 97精品综合| 麻豆av一区二区| 91xingse| 无遮挡又黄又刺激的视频| 一区久久久二区| а√天堂资源官网在线资源| 91jk色拍| 操逼www.| 一区超碰一区| 色墦五月丁香| 狠狠操使劲操| 热久久99999| 亚洲天堂7777| 久久婷婷一区| 97九色人妻| 2019精品国产无码成人| 中文字幕超碰CAO| 日本精品不卡一二三区| 99少妇内射| 曰韩欧美国产传媒麻豆第一区| 翔田千里A片一区二区| 9 7超碰在线免费观看| 强奸乱伦大香蕉| 亚洲欧美变态| 97超碰69| 一牛影视成人片免费| 国产精品另类一区大香蕉| 偷拍 精品另类 凸凹了四区| 无码高清少妇久久| 欧美草草| 99久久这里只有精品| 日日日日做夜夜夜夜无码| 日韩欧美久久婷婷网站| 91精品成人www| 日本成人A片免费看| 96国产精品| 久久久久一本一区二区青青蜜月| 亚洲最大的综合性av| 天美传媒婬乱在| 91性片| 国产成人精品日本视频| 操香逼| 蜜桃臀一区二区aV| 99热官网| 国产欧美精选激情视频| 东京热91| 欧美亚洲第1页| 欧美午夜精品久久久久久3D| 国产精品九九九| 久湿久久 | 91露脸熟女专区| 97chaopenrihan| 99999无码| 中文字幕 国产 精品| 92性色国产午夜福利在线661 | 日本护士高潮| 天天看天天干| 国产日韩怡红院| 天美传媒在线一区| 夜夜中出国产| 亚洲五月婷| 中文字幕一区二区日韩网| 中国少妇啪啪视频| 国产精品久久久久久夜夜夜夜| 性欧美体内射精| www.色婷婷.com| 欧美黑人精品一区二区| 国产午夜福利专区综合| 97日韩超碰超碰中文字幕| 另类专区加勒比| 欧美白嫩在线放| 天综合中文| 97人人超| 亚洲欧美精品福利在线| 国产精品麻豆视频网站| 家庭乱伦国产精品| 青娱乐啪啪视频| 中文字幕一区二区三区人妻不卡 | 乱伦图一区| 国产v片在线免费观看| 91综合在线| 99久久99久久免费精品蜜臀| 操一对老熟妇爽上天视频| 天天影视网色欲色香| 天天内射| 9精品久久| 日本天天干天天搞一区| 99国产精品久久久久久久成人热 | 久久久新亚洲AV| 97精品免费视频网站| 综合五月天| 97日亚洲欧美| 国产精品乱码久久| 久久老女人| 中文一区二区三区影院| 校园春色综合网| 性无码专区2020| 日韩一级久久毛片| 91P0RNY大屁股人妻| 久久性爱视频99| 人妻干天天| 亚洲小电影免费涩涩成人在线高清| 黄片视频,下载| 亚洲第一免费视频| 亚洲精品官网在线观看| 人人操人人大香蕉| AV九九| 国产免费一区二区三区最新不卡| 人妻天堂综合网| 四虎 精品 WWW| 岛国人妻少妇av在线观看| 99国产精品免费| 裸体美女久久久| 啊啊啊啊啊好舒服视频| 一二区在线观看视频| 久久久久久久91| 最新日本中文字幕| 激情五月天插| 免费人成?大片在线播放| 国产成人+综合亚洲+天堂| 91N欧美| 欧美另类自拍| 国产吹潮女在线观看| 日本 情色 1区| 日韩免费a级毛片无码a∨| 国产在线视频二区| 欧美系列在线一区二区| 五月丁香色综合| 夜夜操av亚洲一区二区| 青青草中日韩在线| 国产400孕妇孕交群| 老司机深夜18禁污污网站| 国产强奸超碰AV| 97国产超湿| 欧美999999| 欧美性暴力猛交| 特级特黄一级毛片免费| 91呆哥人妻| 国产午夜福利视频在线| 伊人久大| 国产亚洲深夜激情| 欧美综合区| 91色爽欧美| 精品视频一区二区| 久久久久久久久久久免费精品| 熟女突然公开看18禁影片| 99999无码| 日韩欧美久久婷婷网站| 日本爽爽爽爽爽爽免费视频| av天堂5| 国产传媒1234区| 97伊人| 欧美性爱中文字幕无线码| 国产女人高潮视频| 久久人妻一区二区三区高清| 深夜福利黄片| 超碰人妻在线| 国产在线精品电影观看| 亚洲色宗合| 丁香婷婷九月| 一区二区视频你懂的| 超碰95| 国产免费一区在线观看| 蜜桃精品视频一区| 国产真实子伦对白| 五月丁香综合| 高清不卡 中文 人妻| 中文字幕精品免费一区二区| 国产激情久久| 久久久久96| 中日韩久久久| 久久欧洲| av亚欧| 嗯啊不要在线观看嗯啊| 婷婷10月天青娱乐| 日韩欧美俄罗斯A片| 亚洲中文电影| 天天爽夜夜爽夜夜爽精| 精品久一区免费| 青青草中文字幕| 天天干天天插| 丝袜美腿操av| 婷婷AV一区二区三区| 射丝袜大香蕉| 国产黄片精品在线| 亚洲欧洲日产国产综合网| 精品一区二区国产日韩| 国产精品乱人伊人网| 五十路熟女人妻一区二区三区四区五| 亚洲AV无码乱码在线观看性色| 美女91色黄18| 少妇干B| 综合97久久| 播播亚洲小说亚洲| 伊人四虎综合| 日本色色的视频| 天天综合站| 午夜天堂啪啪| 噜噜噜噜久久久精品免费| 日本一级一级一级一级| 亚洲综合伊人无码久久| 天天做天天爱天天爽| 亚洲资源一区| 吻戏激情性巴克| 精品99999| 手机av天堂久久久久| 欧美精品成人一区二区在线观看 | 欧美姓爱综合网| 骚逼高潮久久精品| 国产精品96| 日本亚洲vr欧美不卡高清专区| 亚洲国产精品无码AV久久| 哈哈操电影AV| 色综合天天| 美女上床网站| 26uuu国产| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区老师黑人潮喷一 | 视频一区二区三区精品| 天美传媒AV国产在线| 日本一级二级三级网站| 色色97爱| 97视频观看| 99老司机精品视频在线观看| 天天日熟妇| 一区二区三区四区色图| 视频一区二区免费在线| 欧美性生活内射| 国产99 中文字幕日韩小视频| 高清无码人妻久久久一区二区三区aⅴ| 日本韩国一本产品小视频日本韩国一本产品久久久产品小视频日本韩国一本产品久 | 任我爽在线视频免费观看| 欧美黄片视频在线观看免费| 女人久久久| 亚洲色图国产另类| 天天肏夜夜肏| www熟女乱伦com| 欧洲一区二区三区四区在线观看| www久久久| 激情五月天插| 欧美色另类| 啊啊啊不要啊啊受不了了视频在线| 日本在线不卡v二区| 97超碰久久| av久日| 人妻夜夜爽天天爽麻豆三区网站| 狠狠操夜夜| 日本一二区不卡| 亚洲宗合网| 久久精品人体| 亚洲欧美国产成人综合不卡| 韩国一级做a久久久久| 久久精品高清无码一区| 91视频观看网站| 操婷婷逼| 亚洲,日韩,欧美,成人播放| 91bbbbbb| 亚州九九九精品视频| 日韩一区二区熟女| 激情AV| 午夜电影在线观看无码专区| 夜夜骑夜夜操| 97人人夜| 日韩中文9| 亚洲熟女综合| 91 刺激在线| 天天日B夜夜干B时时操B| 久久精品午夜国产亚洲AV无码| 久99在线免费观看视频| 大香蕉啪啪啪啪在线| 97超级久久强资源| 色综合久久久久| 国产操偷| jk白丝没脱就开始啪啪| 国产资源中文字幕在线| 欧美熟妇色| 97久久国产精品| 国产精品视频| 国产精品 午夜福利| 97天天摸天天碰| 99在线观看| 翔田千里av一区二区三区| 久久久久久久亚洲Av无码| 五码视频在线观看| 日韩欧美性爱电影在线观看| 欧美一级二级三级| 蜜桃传媒视频第一区入口在线看| 97久久久久久久久久| 国产成人无码a| 97干在线| 九九亚洲| 亚洲一区二区三区婷婷| 日日干日日摸| 综合亚州欧美| 日本久久久久久久久久| 蜜臀久久精品久久久久视频| 青青草成人视频在线观看二区| 97超碰逼| 欧美久久婷婷| 美女AV一区二区| 欧洲一区二区三区免费| 国产AV人人 夜夜人人澡| 国产精品 午夜福利| 久婷婷一区| 10000部十八禁看电影| 亚洲大色堂| 美日韩一二三区| 欧美91精彩| 91网站在线播放| 国产精品69久久久久孕妇欧美 | 久久久久少妇| 国产一区二区三区高清视频| 91av熟女人妻| 五十路六十路素人熟女| 欧美日韩亚洲一区二区在线观看| 欧美精品99久久久**| 亚洲日韩美女中文字幕乱| 黄aaaaaaaaaaaaaaaaaa色网站|