


Membawa anda langkah demi langkah untuk membangunkan alat sandaran telefon mudah alih menggunakan Node.js dan adb
Artikel ini akan berkongsi dengan anda pengalaman praktikal Nod dan memperkenalkan cara membangunkan alat sandaran telefon mudah alih menggunakan Node.js dan adb. Saya harap ia akan membantu semua orang.
Dengan perkembangan teknologi, definisi gambar dan video yang kita ambil dalam kehidupan seharian kita terus bertambah baik, tetapi ini juga mempunyai kelemahan utama, iaitu, mereka saiz juga semakin besar. Saya masih ingat apabila saya mula menggunakan telefon pintar, foto hanya akan menjadi 2-5MB
, tetapi kini foto telah mencapai 15-20MB
, atau lebih besar.
Ruang storan pada telefon mudah alih kami adalah terhad. Bagaimanakah kami menyandarkan foto dan video ini untuk mengosongkan ruang pada telefon mudah alih kami?
Jadi, pada mulanya, saya menyimpan semua data ini dalam awan album foto Walaupun masalah menyimpan data ini telah diselesaikan, masalah baru juga muncul, seperti kekangan saiz muat naik dan keperluan untuk Menduduki latar belakang. membawa kepada peningkatan penggunaan kuasa dan pengiklanan.
Kemudian saya berhenti menggunakannya dan menulis skrip untuk menyandarkan data, jadi artikel ini keluar.
Saya menggunakan Node.js
dan adb
untuk membuat skrip ini dan menamakannya MIB
Prinsip
Alat ini dilaksanakan dengan menggunakan adb
nyahpepijat pada telefon mudah alih dan membaca maklumat fail serta menyalin dan mengalihkan fail dalam telefon bimbit melalui arahan shell
.
Proses pelaksanaan
Saya melukis carta alir ringkas MIB
Pertama, fail konfigurasi akan dibaca daripada fail konfigurasi (jika tiada fail konfigurasi, fail konfigurasi akan dibuat). Dapatkan laluan nod yang perlu disandarkan dan lakukan operasi sandaran fail. sehingga hujung nod.
Proses pembangunan
Pemasangan persekitaran yang diperlukan
Muat turun pakej
adb
, digunakan untuk melaksanakan pelbagai operasi peranti-
Muat turun
Node.js
, saya percaya semua orang sudah mempunyai ini pada komputer mereka -
Pasang pustaka bergantung
-
fs-extra
:fs
pustakaNode
- berdasarkan
prompts
pengkapsulan sekunder modul:Node
Pustaka -
winston
untuk interaksi pada baris arahan:Node
Pustaka untuk merekod log skrip
-
disebabkan kod sumber projek Agak terlalu banyak, saya hanya meletakkan bahagian kod utama di sini
Rakan-rakan yang berminat boleh pergi ke
github
untuk melihat kod sumber projek github.com/QC2168/mib
Baca fail konfigurasi
export const getConfig = (): ConfigType => { if (existConf()) { return readJsonSync(CONFIG_PATH); } // 找不到配置文件 return createDefaultConfig(); };
Apabila melaksanakan skrip, pilih peranti yang perlu disandarkanID
. Dan nyatakan peranti apabila melaksanakan perintah adb
(async () => { const device: string | boolean = await selectDevice(); if (device) MIB(); })(); export const selectDevice = async ():Promise<string|false> => { // 获取设备 const list: devicesType[] = devices(); if (list.length === 0) { log("当前无设备连接,请连接后再执行该工具", "warn"); return false; } const result = list.map((i) => ({ title: i.name, value: i.name })); const { value } = await prompts({ type: "select", name: "value", message: "please select your device", choices: result, }); currentDeviceName = value; return currentDeviceName; };
Traverse nod sandaran
Selepas memilih peranti, masukkan traversal maklumat nod, dan Laksanakan salinan fail ke laluan yang ditentukan (output
atribut dalam fail konfigurasi)
const MIB = () => { // 获取配置文件 const { backups, output } = getConfig(); // 判断备份节点是否为空 if (backups.length === 0) { log("当前备份节点为空", "warn"); log("请在配置文件中添加备份节点", "warn"); } if (backups.length > 0) { isPath(output); // 解析备份路径最后一个文件夹 backups.forEach((item: SaveItemType) => { log(`当前执行备份任务:${item.comment}`); const arr = item.path.split("/").filter((i: string) => i !== ""); const folderName = arr.at(-1); const backupDir = pathRepair(item.path); // 备份目录 // 判断节点内是否有备份目录 // 拼接导出路径 const rootPath = pathRepair(pathRepair(output) + folderName); const outputDir = item.output ? item.output && pathRepair(item.output) : rootPath; // 判断备份路径是否存在 if (!isPathAdb(backupDir)) { log(`备份路径:${backupDir} 不存在已跳过`, "error"); } else { // 判断导出路径 isPath(outputDir); backup(backupDir, outputDir, item.full); } }); } log("程序结束"); }; // 细化需要备份的文件,进入备份队列中 const backup = (target: string, output: string, full: boolean = false) => { if (!full) { // 备份非备份的文件数据 // 获取手机中的文件信息,对比本地 const { backupQueue } = initData(target, output); // 计算体积和数量 computeBackupSize(backupQueue); // 执行备份程序 move(backupQueue, output); } else { // 不文件对比,直接备份 moveFolder(target, output); } }; // 移动待备份文件队列中的文件 const move = (backupQueue: FileNodeType[], outputDir: string): void => { if (backupQueue.length === 0) { log("无需备份"); return; } for (const fileN of backupQueue) { log(`正在备份${fileN.fileName}`); try { const out: string = execAdb( `pull "${fileN.filePath}" "${outputDir + fileN.fileName}"`, ); const speed: string | null = out.match(speedReg) !== null ? out.match(speedReg)![0] : "读取速度失败"; log(`平均传输速度${speed}`); } catch (e: any) { log(`备份${fileN.fileName}失败 error:${e.message}`, "error"); } } };
Fungsi skrip
-
USB
Sambungkan Data sandaran - Data sandaran sambungan wayarles
- Pilihan sandaran berbilang peranti
- Sandaran penuh nod tunggal
Masukkan arahan berikut dalam terminal menggunakan
untuk memasang secara global mib
.
npm i @qc2168/mib -g
Fail skrip konfigurasi
Untuk penggunaan kali pertama, anda perlu mencipta fail .mibrc
baharu dalam direktori pengguna dan tetapkan kandungan parameter yang sepadan.
{ "backups": [ { "path": "/sdcard/MIUI/sound_recorder/call_rec", "comment": "通话录音" }, { "path": "/sdcard/DCIM/Camera", "comment": "本地相册" }, { "path": "/sdcard/DCIM/Creative", "comment": "我的创作" }, { "path": "/sdcard/Pictures/weixin", "comment": "微信相册" }, { "path": "/sdcard/tencent/qq_images", "comment": "QQ相册" }, { "path": "/sdcard/Pictures/知乎", "comment": "知乎" }, { "path": "/sdcard/tieba", "comment": "贴吧" }, { "path": "/sdcard/DCIM/Screenshots", "comment": "屏幕截屏" }, { "path": "/sdcard/DCIM/screenrecorder", "comment": "屏幕录制" }, { "path": "/sdcard/MIUI/sound_recorder", "comment": "录音" }, { "path": "/sdcard/MIUI/sound_recorder/app_rec", "comment": "应用录音" } ], "output": "E:/backups/MI10PRO" }
Laksanakan sandaran
Dalam konsol, masukkan mib
terus untuk mencetuskan skrip tanpa sebarang parameter lain.
mib
Konsol akan mengeluarkan maklumat yang sepadan berdasarkan fail konfigurasi.
2022-04-09 20:58:11 info 当前执行备份任务:屏幕录制 2022-04-09 20:58:11 info 备份数量1 2022-04-09 20:58:11 info 已获取数据24Mb 2022-04-09 20:58:11 info 备份体积24Mb 2022-04-09 20:58:11 info 正在备份Screenrecorder-2022-04-08-19-45-51-836.mp4 2022-04-09 20:58:12 info 平均传输速度27.7 MB/s 2022-04-09 20:58:12 info 当前执行备份任务:录音 2022-04-09 20:58:12 info 备份数量0 2022-04-09 20:58:12 info 备份体积0Mb 2022-04-09 20:58:12 info 无需备份 2022-04-09 20:58:13 info 程序结束
Alamat asal: https://juejin.cn/post/7084889987631710221
Penulis: _island
Mohon lebih banyak pengetahuan berkaitan nod lawati: tutorial nodejs!
Atas ialah kandungan terperinci Membawa anda langkah demi langkah untuk membangunkan alat sandaran telefon mudah alih menggunakan Node.js dan adb. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Jika anda cuba memancarkan ROM tersuai, memulihkan telefon anda daripada gelung but atau buka kunci pemuat but, ADB dan Fastboot akan menjadi kawan terbaik anda. ADB membantu anda memasang apl pada telefon anda, menyahpasang apl sistem tanpa mengakar peranti anda, mendapatkan log apl, mengeluarkan arahan kepada apl dan secara amnya berkomunikasi dengan peranti Android anda. Fastboot dan ADB ialah dua alat yang paling penting apabila menggunakan peranti Android. Walau bagaimanapun, ramai orang sering menghadapi masalah apabila cuba menggunakan ADB dan Fastboot buat kali pertama. Ralat ADB yang tidak diiktiraf adalah perkara biasa bagi orang yang cuba menyediakan ADB buat kali pertama, tetapi bagi mereka yang telah

Artikel ini akan memberi anda pemahaman yang mendalam tentang memori dan pengumpul sampah (GC) enjin NodeJS V8 saya harap ia akan membantu anda!

Perkhidmatan Node yang dibina berdasarkan bukan sekatan dan dipacu peristiwa mempunyai kelebihan penggunaan memori yang rendah dan sangat sesuai untuk mengendalikan permintaan rangkaian besar-besaran. Di bawah premis permintaan besar-besaran, isu yang berkaitan dengan "kawalan memori" perlu dipertimbangkan. 1. Mekanisme kutipan sampah V8 dan had ingatan Js dikawal oleh mesin kutipan sampah

Memilih imej Docker untuk Node mungkin kelihatan seperti perkara remeh, tetapi saiz dan potensi kelemahan imej itu boleh memberi kesan yang ketara pada proses dan keselamatan CI/CD anda. Jadi bagaimana kita memilih imej Node.js Docker yang terbaik?

Modul fail ialah enkapsulasi operasi fail asas, seperti membaca/menulis/membuka/menutup/memadam fail, dsb. Ciri terbesar modul fail ialah semua kaedah menyediakan dua versi **segerak** dan ** asynchronous**, dengan Kaedah dengan akhiran penyegerakan adalah semua kaedah penyegerakan, dan kaedah yang tidak semuanya adalah kaedah heterogen.

Node 19 telah dikeluarkan secara rasmi Artikel ini akan memberi anda penjelasan terperinci tentang 6 ciri utama Node.js 19. Saya harap ia akan membantu anda!

ADB ialah alat baris arahan yang membolehkan pengguna melakukan perubahan yang kompleks dan tidak terhad pada peranti Android. Anda boleh menggunakannya untuk melakukan pemuatan sisi aplikasi, flash ROM tersuai dan naik taraf perisian tegar, dan tweak lanjutan lain. Pemacu ADB memudahkan proses ini dan memastikan ADB berfungsi seperti yang diharapkan. Walau bagaimanapun, seperti sistem pengendalian terdahulu, ADB tidak diprapasang pada Windows 11. Oleh itu, anda mesti memasang pemacu sendiri. Dalam tutorial ini, kami bukan sahaja menunjukkan kepada anda cara memasang pemacu ADB, tetapi kami juga membawa anda melalui proses konfigurasi. Adakah pemacu ADB selamat untuk dipasang? Pemandu ADB secara amnya selamat. Mereka tidak akan melakukan apa-apa yang tidak perlu pada PC anda

Bagaimanakah Node.js melakukan GC (pengumpulan sampah)? Artikel berikut akan membawa anda melaluinya.
