با سلام
توی برنامه های اندرویدی که می نوشتم، نیاز داشتم تا بدونم که چه تغییری توی بانک برنامه اندرویدی ای که نوشته ام و در موبایل یا emulator اجرا شده، انجام شده است. با استفاده از این دو کد و با استفاده از نرم افزاری که بانک های SQLite رو بتونه نمایش بده، میشه به اطلاعات بانک در موبایل دسترسی داشت.
برای اجرا این کد ها در موبایل حتما باید موبایل روت شده باشه و به ADB دسترسی روت داده بشه
(البته یه پروژه حساب نمیشه ولی کار راه اندازه)
کد دریافت و نمایش بانک:
پس از گرفتن فایل بانک از توی موبایل و انتقال اون به سیستم ما، اون رو با نرم افزاری که بتونه فایل های sqlite رو باز کنه (در اینجا sqliteman)، باز می کنه.
#!/bin/bash
BLUE='\033[0;34m'
GREEN='\033[0;32m'
PURPLE='\033[0;35m'
NC='\033[0m' # No Color
if [ -z "$1" ]; then
read -p "What is project name (without ir.mycompany)? " project
else
project=$1
fi
if [ -z "$2" ]; then
read -p "What is database name? " dbName
else
dbName=$2
fi
printf "${GREEN}Project: ${BLUE}ir.mycompany.$project -- ${GREEN}Database: ${BLUE}$dbName\n${NC}"
printf "${GREEN}Command: ${PURPLE}pullDB $project $dbName\n${NC}"
adb shell "su -c 'rm /sdcard/$dbName.sqlite; cat /data/data/ir.mycompany.$project/databases/$dbName > /sdcard/$dbName.sqlite'"
adb pull /sdcard/$dbName.sqlite /home/USERNAME/File/$dbName.sqlite
sqliteman /home/USERNAME/File/$dbName.sqlite
می تونید فایل بانک رو مشاهده و حتی ویرایش کنید
کد انتقال به موبایل:
#!/bin/bash
BLUE='\033[0;34m'
GREEN='\033[0;32m'
PURPLE='\033[0;35m'
NC='\033[0m' # No Color
if [ -z "$1" ]; then
read -p "What is project name (without ir.mycompany)? " project
else
project=$1
fi
if [ -z "$2" ]; then
read -p "What is database name? " dbName
else
dbName=$2
fi
printf "${GREEN}Project: ${BLUE}ir.mycompany.$project -- ${GREEN}Database: ${BLUE}$dbName\n${NC}"
printf "${GREEN}Command: ${PURPLE}pushDB $project $dbName\n${NC}"
adb push /home/USERNAME/File/$dbName.sqlite /sdcard/$dbName.sqlite
adb shell "su -c 'cat /sdcard/$dbName.sqlite > /data/data/ir.mycompany.$project/databases/$dbName'"
قسمت Command برای هر دو کد رو هم گذاشتم که کاربر بدونه کد دستوری سریع اون چیه. چون خودم بیشتر دستور ها رو با CTRL+R می زنم و این جوری نمی خواد هر دفعه از ابتدا اون ها ورودی ها وارد کنم.
اگه بشه بهترش کرد ممنون میشم راهنمایی کنید