نمایش نتایج 1 تا 11 از 11

نام تاپیک: سوال در مورد ساختار apk و اتفاقات پشت پرده نصب آن

  1. #1
    کاربر دائمی آواتار arshia_
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    ایران-شهر فرزانگان( بروجرد )
    پست
    1,226

    سوال در مورد ساختار apk و اتفاقات پشت پرده نصب آن

    سلام دوست گرامی
    من در خصوص برنامه ای اندروید سوال دارم. خوشحال می شم کسی بتونه دقیق راهنمایی کنه
    البته سوال من در خصوص ساختار کاری فایلهای APK است.
    می خوام بدونم وقتی توی گوشی یا تبلت یه فایل APK رو نصب می کنیم دقیقا چه اتفاقی می افته؟ یعنی چه فایلهایی توی کجاهای گوشی ذخیره می شن؟ فایلهایی که کاربر اضافه کرده مثل عکس و فایل صوتی و ویدیو توی پوشه های raw پوشه های مشابه در زمان طراحی برنامه کجا ذخیره می شن؟ و خود فایل apk چی می شه؟ آیا جایی ذخیره می شه که کاربر می تونه اونو با برنامه هایی مثل shareit , zapya برای کسی بفرسته یا یه پروسه برای جمع آوری فایلهای باز شه صورت می گیره؟ متاسفانه نتونستم اطلاعات بدرد بخوری توی اینترنت گیر بیارم.
    مثلا توی ویندوز یا لینوکس می دونیم فایلهای کتابخانه ای کجاست و احیانا فایلهای دیتا بیس توی صفحات وب توی کدوم فولدره پیش فرض و... در واقع معماری و ساختار کلی رو می خوام...که بعد از نصب چه اتفاقی می افته.
    و یا چرا زمان آپدیت کردن برنامه اندروید حجم کمتری دانلود می کنیم. دقیقا کدوم قسمتهای برنامه آپدیت می شن و کدوم فایلها رونویسی می شن.
    من می دونم که داخل ساختار apk تعدادی xml و فایل وجود داره . می خوام دقیقا نحوه استقرار یه برنامه رو بفهمم توی سیستم و بدونم دقیقا چه اتفاقی می افته که برنامه رو نصب می کنیم!
    ممنون

  2. #2

    نقل قول: سوال در مورد ساختار apk و اتفاقات پشت پرده نصب آن

    با سلام
    ساختار فایل apk به صورت یک فایل zip شده است که اغلب برنامه نویسان با ابزارهایی که در اختیار دادند سورسهاشون قبل از اینکه apk کنن نا خوانا میکنن تا از مهندسی معکوس رو کد هاشون جلوگیری کنن.
    وقتی این فایل روی سیستم عامل اندروید unzip میشه سیستم عامل یکسری از شاخه ها که عمومی ان مثل DataBase رو تو یک چنین مسیری ذخیره میکنه
    data/data/your_package/databases
    ساختار فولدرها به صورت زیر می باشد

    AndroidManifest.xml the manifest file in binary XML format.
    classes.dex application code compiled in the dex format.
    resources.arsc file containing precompiled application resources, in binary XML.
    res/ folder containing resources not compiled into resources.arsc
    assets/ optional folder containing applications assets, which can be retrieved by AssetManager.
    lib/ optional folder containing compiled code - i.e. native code libraries.
    META-INF/ folder containing the MANIFEST.MF file, which stores meta data about the contents of the JAR. which sometimes will be store in a folder named original.The signature of the APK is also stored in this folder


    هر فایل APK شامل یک فایل AndroidManifest.xml است که نام بسته بسته نرم افزاری، اجزای نسخه و سایر فراداده ها را اعلام می کند. جزئیات کامل مشخصات مشخصات اندروید مانیفست را می توان در اینجا مشاهده کرد. در زیر فقط چند ویژگی مشترک است که می توانند در AndroidManifest شناسایی شوند.

    Manifest tag contains android installation mode, package name, build versions

    Permissions custom permission and protection level

    uses-permissions requests a permission that must be granted in order for it to operate, full list of permission api can refer here.

    uses-feature Declares a single hardware or software feature that is used by the application.

    Application The declaration of the application. Will contains all the activity

    Activity Declares an activity that implements part of the application visual user interface.

    intent-filter Specifies the types of intents that an activity, service, or broadcast receiver can respond to.

    service Declare a service as one of the application components.

    receiver Broadcast receivers enable applications to receive intents that are broadcast by the system or by other applications, even when other components of the application are not running.

    provider Declares a content provider component. A content provider is a subclass of ContentProvider that supplies structured access to data managed by the application.
    آخرین ویرایش به وسیله farhad_shiri_ex : سه شنبه 21 فروردین 1397 در 12:37 عصر

  3. #3

    نقل قول: سوال در مورد ساختار apk و اتفاقات پشت پرده نصب آن


    $apktool d mtxx.apk

    با این دستور توی ترمینال اندروید استودیو می تونید ساختار برنامه رو استخراج کنید.

    برنامه های انتقال فایل هم از کتابخانه ای استفاده میکنند که برنامه نصب شده APK را تبدیل به zip فایل میکنند.

    وقتی هم که برنامه به روز میشود شاخه دیتا که در root گوشی ذخیره شدن بدون تغییر می ماند ولی فایل apk به روز میشه با تمام خاصیت هایی که در بالا ذکر کردم در برنامه نویسی اندروید نکته مهم برای سیستم عامل اندروید نام پکیج اصلی می باشد اگر بعد از release کردن APK این نام تغییر کند سیستم عامل تصور میکنه که شما برنامه ای جدیدی نصب کرده اید.

  4. #4
    کاربر دائمی آواتار arshia_
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    ایران-شهر فرزانگان( بروجرد )
    پست
    1,226

    نقل قول: سوال در مورد ساختار apk و اتفاقات پشت پرده نصب آن

    ممنون از توضیحات شما
    ساختار داخلی فایلهای APK رو می دونم و داخل اونو دیدم که بیشتر اطلاعات اکتیویتی ها بصورت xml کد شده
    فقط می خواستم بدونم دقیقا کجاهای سیستم عامل اندروید ذخیره می شه
    چون من برنامه های زیادی رو تست می کنم و می بینم که توی شاخه دیتا فولدر به نام برنامه ساخته شده ولی داده هایی رو که انتظار داریم توش باشه دیده نمی شه و البته اینکار رو هم در سطح معمولی انجام دادم هم در سطح روت شده
    برای همین تعجب می کنم وقتی اطلاعاتی از برنامه نصب شده در محل مورد نظر نیست پس کجا می تونه باشه
    و فایل apk بعد از نصب اگر حذف نمی شه کجا نگهداری می شه؟ و آیا پسوندش همون می مونه؟
    و کاربر در زمانی که یک برنامه رو فراخوانی یا اجرا می کنه دقیقا کدوم فایلها باعث نمایش و اجرا می شن؟
    xml ها که در یک جای خاص ذخیره شدن یا خود فایل APK?

    چون وقتی ما برنامه های ویندوزی رو بررسی می کنیم می بینیم صداها و تصاویر مورد استفاده در برنامه در خود برنامه وجود دارند و جایی ذخیره نمی شه . آیا توی اندروید هم برنامه ها فولدرهای raw و فایلهای اضافه شده رو درون خودشون حفظ می کنن و اون فولدرهای داخل دیتا فقط برای نگهداری فایلهای زمان اجرا یا دیتا بیس هاست یا اینکه در زمان نصب فایلها جایی استخراج می شن؟ که بنظرم بعیده؟

  5. #5

    نقل قول: سوال در مورد ساختار apk و اتفاقات پشت پرده نصب آن

    شما دارید برنامه ای رو Trace میکنید فکر کنم ...
    دوست عزیز اینکه کاربر برنامه رو اجرا میکنه چی اجرا میشه خوب نقطه شروع کلاسی هست که در AndroidManifest به عنوان main activity معرفی شده و تبدیل به (Dalvik EXecutable)dex فایل شده اجرا میشه وظیفه اجراش با ماشین مجازی اندروید به اسم Dalvik .
    در پست بالا هم عرض کردم وضیعت فولدرها پس از unzip شدن به چطور هست ؟
    و اینه که دقیقا کجا ذخیره میشن توی سیستم عامل اندروید به چه دردتون میخوره البته کنجکاوی خودم هست ؟
    چون منهم نرم افزار هایی زیادی رو تو ویندوز با اسمیلی و دیباگر ها تونستم بعضی چیزهاشو تغییر بدم اگر هدف شما این هستش تو اندروید خوب وقتی میتونین سورس بدست بیارید روی همون کار کنید اگر هم با دیتابیس کار دارید که خوب اونهم که قابل دسترس هستش فقط اگر کد نشده باشه
    و اگر هم دنبال Resource های خاصی توی اون APK هستید باید توی یک فولدر روی همون حافظه داخی ویا خارجی باشن چون امکان نوشتن تو روت بطور مستقیم نیست پس باید یه جا ذخیره شده باشه فقط محض اطلاع میدونید که شاخه های مخفی در اندروید با یک نقطه شروع میشن برای دیدن این شاخه ها هم برنامه های زیادی هست

  6. #6

    نقل قول: سوال در مورد ساختار apk و اتفاقات پشت پرده نصب آن

    اینم بد نیست یه نگاه بندازید
    بر خلاف VM های جاوا که ماشین های پشته هستند، VM Dalvik از یک معماری مبتنی بر ثبت استفاده می کند که دستورالعمل های ماشین مجازی کمتر، به طور معمول پیچیده تر است.
    برنامه های Dalvik در جاوا با استفاده از رابط برنامه نویسی آندروید (API)، با استفاده از بایت کد جاوا نوشته شده و در صورت لزوم به دستورالعمل های Dalvik تبدیل می شوند.
    عکس های ضمیمه عکس های ضمیمه

  7. #7

    نقل قول: سوال در مورد ساختار apk و اتفاقات پشت پرده نصب آن

    JEB نرم افزار disassembler و decompiler برای برنامه های آندروید [2] و کد ماشین بومی است.
    این decompiles bytecode Dalvik به کد منبع جاوا، و MIPS و کد ماشین ARM به کد منبع C است.

  8. #8
    کاربر دائمی آواتار arshia_
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    ایران-شهر فرزانگان( بروجرد )
    پست
    1,226

    نقل قول: سوال در مورد ساختار apk و اتفاقات پشت پرده نصب آن

    ممنون
    در واقع قصد trace برنامه خاصی رو ندارم
    دوست دارم بخاطر بالا بردن سطح دانش خودم و ارتقا برنامه نویسی اندروید اینکارو بکنم
    چون وقتی از محیط یه سیستم عامل کمتر مطلع باشی نمی تونی برنامه هایی که بهینه هستند تهیه کنی
    همینطور در خصوص بالا بردن امنیت برنامه بد نیست اطلاعات بیشتری در خصوص برنامه و سیستم عامل داشته باشم
    بابت راهنمایی های شما بسیار ممنونم
    حداقل الان یه مقدار از ساختار رو می دونم و می شه کم کم و بصورت قسمت قسمت بقیه رو هم بهتر متوجه بشم
    لطف فرمودید دوست گرامی

  9. #9

    نقل قول: سوال در مورد ساختار apk و اتفاقات پشت پرده نصب آن

    نقل قول نوشته شده توسط arshia_ مشاهده تاپیک
    ممنون
    در واقع قصد trace برنامه خاصی رو ندارم
    دوست دارم بخاطر بالا بردن سطح دانش خودم و ارتقا برنامه نویسی اندروید اینکارو بکنم
    چون وقتی از محیط یه سیستم عامل کمتر مطلع باشی نمی تونی برنامه هایی که بهینه هستند تهیه کنی
    همینطور در خصوص بالا بردن امنیت برنامه بد نیست اطلاعات بیشتری در خصوص برنامه و سیستم عامل داشته باشم
    بابت راهنمایی های شما بسیار ممنونم
    حداقل الان یه مقدار از ساختار رو می دونم و می شه کم کم و بصورت قسمت قسمت بقیه رو هم بهتر متوجه بشم
    لطف فرمودید دوست گرامی
    خواهش میکنم خوشحالم مطلب مفید فاید بوده برای شما.

    واقعیتش اینه که کلا بحث امنیت روی سورس کدها کلا خیلی قوی نیست توی اندروید می تونیم ناخوانا کنیم کدها رو ولی بازهم روشهایی هست که دیکد بشن بیشتر رو امنیت اطلاعات تون باید کار کنید و قوی بودن برنام کاربردی اندروید تون چون امکان اینو داره که کلا سورس تون دی کامپایل کنن وازش یه نرم افزار دیگه با همون مشخصات بسازن البته تو کشور عزیزمون این قضیه بیشتره.!
    دیگه وقتی خود تلگرام میاد کل سورس هاشو میذاره به راحتی هم کامپایل میشه پس مشخص که وقت گذاشتن روی روشهای کدینگ کردن سورس کد و از این قبیل تکنیکها دیگه امروز خیلی فایده ای نداره.
    ای کاش فرهنگم انقدر بالا بره که منهم پروژه هامو بذارم تو یه مخزن و همکارهایی بیان باهم برنامه رو توزیع کنیم و ایده کس دیگه ای رو کپی نکنم خودم برم دنبال ایده و طرح.

  10. #10
    کاربر دائمی آواتار Nevercom
    تاریخ عضویت
    دی 1387
    محل زندگی
    بستک
    سن
    35
    پست
    1,118

    نقل قول: سوال در مورد ساختار apk و اتفاقات پشت پرده نصب آن

    نقل قول نوشته شده توسط arshia_ مشاهده تاپیک
    سلام دوست گرامی
    من در خصوص برنامه ای اندروید سوال دارم. خوشحال می شم کسی بتونه دقیق راهنمایی کنه
    البته سوال من در خصوص ساختار کاری فایلهای APK است.
    می خوام بدونم وقتی توی گوشی یا تبلت یه فایل APK رو نصب می کنیم دقیقا چه اتفاقی می افته؟ یعنی چه فایلهایی توی کجاهای گوشی ذخیره می شن؟ فایلهایی که کاربر اضافه کرده مثل عکس و فایل صوتی و ویدیو توی پوشه های raw پوشه های مشابه در زمان طراحی برنامه کجا ذخیره می شن؟ و خود فایل apk چی می شه؟ آیا جایی ذخیره می شه که کاربر می تونه اونو با برنامه هایی مثل shareit , zapya برای کسی بفرسته یا یه پروسه برای جمع آوری فایلهای باز شه صورت می گیره؟ متاسفانه نتونستم اطلاعات بدرد بخوری توی اینترنت گیر بیارم.
    مثلا توی ویندوز یا لینوکس می دونیم فایلهای کتابخانه ای کجاست و احیانا فایلهای دیتا بیس توی صفحات وب توی کدوم فولدره پیش فرض و... در واقع معماری و ساختار کلی رو می خوام...که بعد از نصب چه اتفاقی می افته.
    و یا چرا زمان آپدیت کردن برنامه اندروید حجم کمتری دانلود می کنیم. دقیقا کدوم قسمتهای برنامه آپدیت می شن و کدوم فایلها رونویسی می شن.
    من می دونم که داخل ساختار apk تعدادی xml و فایل وجود داره . می خوام دقیقا نحوه استقرار یه برنامه رو بفهمم توی سیستم و بدونم دقیقا چه اتفاقی می افته که برنامه رو نصب می کنیم!
    ممنون
    این پاسخ در StackOverflow رو ببینید: https://stackoverflow.com/a/32067673/1686304

    من بخش های همون پاسخ رو اینجا هم می‌نویسم:
    1. فایل AndroidManifest.xml پارس میشه و اطلاعات موجود در اون به فایل‌های زیر ذخیره میشن:
      1. /data/system/packages.xml
      2. /data/system/packages.list

    2. فایل apk به مسیر /data/app/ کپی میشه
    3. فایل .dex که از فایل apk استخراج شده، به مسیر /data/dalvik-cache/ کپی میشه (فایل dex حاوی کلاس های برنامه هست)
    4. مسیر /data/data/PACKAGE_NAME/ برای ذخیره دیتابیس و SharedPreferences و چیزای دیگه ایجاد میشه.


    و یا چرا زمان آپدیت کردن برنامه اندروید حجم کمتری دانلود می کنیم. دقیقا کدوم قسمتهای برنامه آپدیت می شن و کدوم فایلها رونویسی می شن.
    این موضوع ربطی به اندروید و ساختار apk نداره، و این الگو رو برای هر فایل باینری میشه به کار برد. درواقع میان و diff نسخه جدید و نسخه قبلی رو میگیرن (که بهش میگیم Patch file ) و فقط فایل Patch رو دانلود میکنن. و در خود دستگاه هم ابزاری میاد و با استفاده از نسخه قبل و patch، نسخه جدید رو تولید میکنه و نسخه جدید رو نصب میکنن.

  11. #11

    نقل قول: سوال در مورد ساختار apk و اتفاقات پشت پرده نصب آن

    توضیحات لازم و دوستان دادن اما شما میتونستید با استفاده از FileObserver به مانیتور کردن فایل ها به پردازید

تاپیک های مشابه

  1. سوال: سوال در مورد ساختار mvc ؟
    نوشته شده توسط redhat2 در بخش PHP
    پاسخ: 6
    آخرین پست: سه شنبه 19 آذر 1392, 15:36 عصر
  2. سوال: سوال در مورد ساختار سینتکس دلفی
    نوشته شده توسط Mask در بخش مباحث عمومی دلفی و پاسکال
    پاسخ: 2
    آخرین پست: شنبه 18 آذر 1391, 23:47 عصر
  3. سوال: سوال در مورد ساختار کلاس های دات نت
    نوشته شده توسط hoseinEY در بخش ASP.NET Web Forms
    پاسخ: 1
    آخرین پست: دوشنبه 22 آبان 1391, 08:16 صبح
  4. سوال در مورد ساختار تالار گفتگو و سایت خبری (PHP)
    نوشته شده توسط cicada_021 در بخش توسعه وب (Web Development)
    پاسخ: 3
    آخرین پست: دوشنبه 12 تیر 1391, 13:01 عصر
  5. سوال در مورد ساختار MVC
    نوشته شده توسط KouroshSharifi در بخش PHP
    پاسخ: 1
    آخرین پست: سه شنبه 19 اردیبهشت 1391, 14:10 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •