انجمن‌های فارسی اوبونتو

لطفاً به انجمن‌ها وارد شده و یا جهت ورود ثبت‌نام نمائید

لطفاً جهت ورود نام کاربری و رمز عبورتان را وارد نمائید




نویسنده موضوع: دسترسی و تغییر در بانک برنامه اندروید در موبایل یا emulator  (دفعات بازدید: 1721 بار)

0 کاربر و 1 مهمان درحال مشاهده موضوع.

آفلاین msajadi832

  • Sr. Member
  • *
  • ارسال: 331
  • جنسیت : پسر
  • http://appza.ir
    • اپزا: ابزار هوشمند کسب و کار شما
با سلام

توی برنامه های اندرویدی که می نوشتم، نیاز داشتم تا بدونم که چه تغییری توی بانک برنامه اندرویدی ای که نوشته ام و در موبایل یا 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 می زنم و این جوری نمی خواد هر دفعه از ابتدا اون ها ورودی ها وارد کنم.

اگه بشه بهترش کرد ممنون میشم راهنمایی کنید