آموزش خروجی گرفتن apk از سورس اندروید

بهمن 9, 1397| سنا عبادی
نحوه خروجی گرفتن apk از سورس اندروید

در این مقاله قرار هست راجع به خروجی گرفتن از سورس های اندروید در اندروید استودیو صحبت کنیم . اگر که با سیستم عامل اندروید آشنایی مختصری داشته باشید می دانید که فرمت قابل نصب یک اپلیکیشن APK است. پسوند apk که مخفف (Android application package) بوده مربوط به اپلیکیشن های اندروید هست که روی دیوایس های مختلف اندروید   نصب می شوند.

برای اینکه بتوانید خروجی اپلیکیشن خود را که یک apk است را تولید کنید تا بتوانید آن را در گوگل پلی  برای کاربران اندروید منتشر کنید ,  باید که پروژه ی خودتون رو توی اندروید استودیو ایمپورت کنید .

حتما از کانفیگ فایل build.gradle مطلع باشید .

محتویات شبیه به زیر است :

apply plugin: 'com.android.application'

android {
compileSdkVersion 28
defaultConfig {
applicationId "androidriver.ir.testapk"
minSdkVersion 19
targetSdkVersion 28
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}

dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:28.0.0'
}

در این قسمت باید به چندنکته توچه کنید :
minSdkVersion
targetSdkVersion
compileSdkVersion
گزینه ی اول تعیین کننده ی این هست که اپلیکشن شما حداقل از کدام نسخه ی اندرویدی به بالا ، ساپورت میشود. یعنی اپلیکیشن شما از کدام نسخه ی اندرویدی قابل نصب و اجرا هست. که معمولا ۱۷-۱۹ معقول هست مگر اینکه بخواهید از امکانات خاصی از یک نسخه استفاده کنید.
گزینه های دوم و سوم را سعی کنید همیشه روی آخرین نسخه داشته باشید . الان که دارم این مقاله را می نویسم آخرین نسخه ۲۸ هست . این به این معنا هست که اپلیکشن شما قادر هست که روی دیوایس هایی تا اندروید ۹ هم قابل نصب و اجرا باشد . یعنی با توضیحات فوق اپ شما از بازه‌ی minSdk تا targetSdk قابل نصب و اجرا هست.

گزینه های دیگر مثل
versionCode
versionName
نیز برای انتشار اپلیکیشن شما خواهد بود . ورژن کد در ابتدا ۱ است و هر وقت که قرار بود برای اپلیکیشن خود آپدیت در نظر بگیرید یک واحد یک واحد به آن اضافه کنید.
ورژن نیم نیز , همان ورژنی است که برای کاربرا قابل رویت و مشاهده هست که باز برای هر اپدیت می توان آن را واحدی و یا اعشاری تغییر داد و یا حتی نام هایی برای آن برگزید مانند Demo یا Premium .

خب بعد از آشنایی با موارد فوق , قرار هست که خروجی apk را تولید کنیم ولی قبل از آن ذکر یک نکته ضروری هست:

همچنین بخوانید :  معرفی پلاگین ADB WiFi Connect

در نسخه ی ۳ اندروید استودیو علاوه برا فرمت apk ‌فرمت دیگری معرفی شد که در حال حاظر فقط می توان برای گوکل پلی از آن استفاده کرد . این فرمت aab مخفف (Android App Bundle) هست .
این فرمت نسبت به فرمت apk مزیت هایی دارد . یکی از این مزیت ها کاهش حجم اپلیکیشن برای دانلود توسط کاربر است . این پروسه به این دلیل اتفاق میفتد که گوگل پلی برای هر کاربر با توجه با کانفیگ و مشخصات دستگاهش , تنها منابع و فایل های مورد نیاز آن دیوایس را دانلود میکند . حجم بالای apk به این دلیل است که بی توجه به کانفیگ دیوایس تمامی فایل ها را دانلود میکند.
دقت کنید که این فرمت فقط برای گوگل پلی هست برای مارکت های داخلی حتما باید apk باشد. ضمن اینکه فرمت aab بر خلاف apk قابلیت نصب مستقیم روی دیوایس را ندارد.

آموزش خروجی گرفتن APK یا AAB از سورس اندروید

از قسمت تب ها , Build را انتخاب کنید.در قسمت پایین شما دو گزینه ی Build Bundle / APK و Generate Signed Bundle / APK را خواهید دید .
در کل برای برنامه نویس اندروید دو نوع خروجی وجود دارد . نسخه ی دیباگ (debug) و نسخه ی اصلی یا همون release.
که برای داشتن نسخه ی دیباگ گزینه ی Build Bundle / APK را انتخاب کنید و بدون امضا زدن می توانید خروجی apk داشته باشید.که فقط روی دیوایس خود برنامه نویس قابل تست است . برای دسترسی به آن میتوان دایرکتوری زیر را در فایل اکسپلور پروژه اتون در سیستمتون دنبال کنید app/build/outputs/apk/debug/.
ولی جهت انتشار اپلیکیشن در اپ استورها، لازم است آنرا امضا (Sign) کنیم و اپ استورها اپلیکیشنی که امضا نشده باشد را نمی‌پذیرند.

پس گرینه ی Generate Signed Bundle / APK را انتخاب کنید.
در این مرحله نوع خروجی را تعیین می‌کنیم که از نوع aab باشد یا apk من گزینه دوم را انتخاب می‌کنم.
امضایی که می‌سازیم به صورت یک فایل با پسوند jks ذخیره می‌شود. این امضا را می‌توانیم برای سایر اپلیکیشن‌های خود نیز استفاده کنیم. گزینه Create new را انتخاب کرده و در پنجره جدید اطلاعات لازم برای ساخت کلید امضا را وارد می‌کنم:

همچنین بخوانید :  کار با WebView (وب ویو) در اندروید

نکته : برای اینکه خروجی شما با ارور play protect مواجه نشود به این لینک مراجعه کنید و سپس ادامه ی کار را پیش بگیرید .
طبق لینک بالا شما تمامی فیلد های قسمت Certificate را پر کرده و نیز قسمت Alias یا نام مستعار است که یک نام دلخواه وارد می کنم و در خط بعد برای نام مستعار هم نیاز به تعریف رمز عبور دارم. گزینه Validity اشاره به زمان معتبر بودن امضا بر حسب سال است که پیش فرض عدد ۲۵ قرار داده شده.

بعد از اتمام مرحله فوق , فایلی که فرمت jks دارد حاوی تمامی اطلاعات شما هست . پس لطفا در نگهداری آن دقت کنید که اگر آن فایل را برای اپدیت بعدی اپ نداشته باشید , و با کی استور دیگری اپ را امضا بزنید ,مارکت ها اپ شما را قبول نخواهد کرد . پس کی استور خود را در جایی امن نگهداری کنید.

بعد از تایید کردن این مرحله , پنجره ی دیگری باز می شود که نشان دهنده ی این است که فایل jks شما با فلان نام ساخته شده است.
شما می توانید برای دفعات بعد یا سایر پروژه‌ها با انتخاب گزینه Choose existing مجدد از این امضا استفاده کنید.

با انتخاب گزینه ی Remember passwords در دفعات بعد نیاز به وارد کردن مجدد رمزهای عبور نیست (این قابلیت باعث نشود تا رمز عبوری که تعیین کرده اید را فراموش کنید. مجدد تاکید می‌کنم این رمز عبور را حتما در جایی یادداشت کنید).

با توجه به اینکه قصد انتشار اپلیکیشن را دارید، در قسمت Build Type گزینه release باید انتخاب شده باشد. در بخش Signature Versions دو گزینه Jar Signature و Full APK Signature وجود دارد. هردو گزینه را انتخاب کرده، منتظر مانید تا عمل Generate انجام شود.
بعد از مدتی اندروید استودیو پیغامی مبنی برا اینکه apk ساخته شد را نشان می دهد که میتوان با کلیک روی locate مستقیم به فایل apk دسترسی داشت.

گرفتن خروجی aab نیز به همین صورت است با این تفاوت که در مرحله اول گزینه Android App Bundle را انتخاب می‌کنیم که بعد به فایلی با پسوند aab دسترسی خواهیم داشت.

نکته : برای گرفتن خروجی حتما از نرم افزار های تغییر ip استفاده کنید .

4.3/5 (4 Reviews)
سنا عبادی CO-Founder نویسنده مقاله

توسعه دهنده موبایل به ویژه سیستم عامل اندروید ، هم بنیانگذار اندروید ریور و در تلاش برای تحقق یک رویا..



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

مقالات مرتبط را بخوانید :


سورس های اندروید شامل تخفیف رو ببین !

به این مقاله امتیاز دهید :
4.3/5 (4 Reviews)
  خرید سورس های حرفه ای بازی و اپلیکیشن اندروید

  تخفیف ها و اخبار ویژه رو در تلگراممون دنبال کن :)

دسته‌ها: آموزش برنامه نویسی اندروید

دیدگاه

  • Mostafa Nejati
    خرداد 18, 1399

    سلام استاد برای من ارور میده

    Executing tasks: [:app:assembleRelease] in project E:\barnameh\ZekreAyam
    
    
    FAILURE: Build failed with an exception.
    
    * What went wrong:
    Could not determine the dependencies of task ':app:lintVitalRelease'.
    > Could not resolve all task dependencies for configuration ':app:lintClassPath'.
       > Could not resolve com.android.tools.lint:lint-gradle:26.6.3.
         Required by:
             project :app
          > No cached version of com.android.tools.lint:lint-gradle:26.6.3 available for offline mode.
          > No cached version of com.android.tools.lint:lint-gradle:26.6.3 available for offline mode.
    
    * Try:
    Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
    
    * Get more help at https://help.gradle.org
    
    BUILD FAILED in 505ms
    

دیدگاهتان را بنویسید

راهنما : برای نوشتن موارد مختلف در دیدگاه می توانید از راهنمای نگارش اندروید ریور استفاده کنید : نگارش کد کوتاه `your code`
نگارش کد بلند یا نگارش بخش عمده یک سورس کد :
[sourcecode lang="your code language"] your code here [/sourcecode]