<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های Mahdi Malvandi</title>
        <link>https://virgool.io/feed/@mahdi-malv</link>
        <description>Android SDK developer at Tapsell</description>
        <language>fa</language>
        <pubDate>2026-06-07 10:00:21</pubDate>
        <image>
            <url>https://files.virgool.io/upload/users/27877/avatar/7KF6RY.png?height=120&amp;width=120</url>
            <title>Mahdi Malvandi</title>
            <link>https://virgool.io/@mahdi-malv</link>
        </image>

                    <item>
                <title>مشاهده‌ی لاگ‌های اپلیکیشن اندروید در لاگ‌کت</title>
                <link>https://virgool.io/pushe-co/android-adb-logcat-setup-rosvzwydsay5</link>
                <description>ADB (image taken from optocrypto.com)یکی از مشکلاتی که توسعه‌دهنده‌های موبایل هنگام ساختن برنامه‌ی اندروید دارن دیباگ اون و حداقل دیدن خطاهاییه که توی دیوایس اندروید برای برنامشون پیش میاد هست. دلیلش می‌تونه مختلف باشه؛ تازه‌کار بودن توسعه‌دهنده، استفاده از پلتفرمی که دیدن لاگ خیلی مطرح نیست براش یا .... تو این پست قصد دارم نحوه‌ی استفاده از ابزار لاگ‌کت رو به طور ساده توضیح بدم و توی پلتفرم‌های مختلف روش استفادش رو بگم.معرفی Android logcatاگر توسعه‌دهنده‌ی اندروید باشید [که با اندروید استودیو و یا ایکلیپس کار کردید]، مطمئنا Logcat به گوشتون خورده. توی SDK اندروید ابزاری به اسم ADB (یا Android debug bridge) هست که وظیفش برقراری ارتباط بین دستگاه و رایانه‌ست. محیط‌های توسعه‌ای که شما باهاشون برنامه‌ی اندروید مینویسید و اون رو با اتصال گوشی به رایانه روی گوشی‌تون اجرا می‌کنید از adb برای نصب برنامه روی گوشی استفاده می‌کنن.یکی از کارهایی که ADB انجام می‌ده گزارش لاگ‌های دستگاه متصل‌شده‌ست. لاگ، پیامیه که یه نرم‌افزار هنگام اجرا توی سیستم‌عامل توی مواقع مختلف چاپ می‌کنه.پس واسه‌ی دیدن لاگ‌های برنامه، باید لاگ‌های دستگاه‌ رو بگیریم و لا‌گ‌های برنامه‌ی خودمون رو جدا کنیم.ببینیم واسه‌ی ابزارهای مختلف نحوه‌ی انجام این کار چجوریه. اول IDE های مطرح، بعد راه‌های عمومی رو خواهم‌گفت.اندروید استودیواندروید استودیو راحت‌ترین روش برای دیدن لاگ‌های برنامه‌ست. کافیه وقتی اپ رو روی دستگاه اجرا می‌کنید لاگ‌کت رو از پایین انتخاب کنید (همچنین کلید ترکیبی Alt + 6)Where is Logcat in Android studio?بعد از انتخاب لاگ‌کت تنظیمات اون رو می‌تونید توی پنجره‌ش ببینید:Logcat actionsسبز: دیوایسی که وصل هست رو انتخاب کنید تا بتونید لاگ‌های اون رو ببینید.زرد: فیلتر با کلمه‌ای که می‌خواید. مثلا لاگ‌های دارای تگ Flower.قرمز: اگر اپی در حالت دیباگ روی دیوایس نصب شده‌باشه، می‌تونید اون رو انتخاب کنید و فقط لاگ‌های اون رو ببینید (منوی سمت راست باید Show only selected application باشه).اینتلیجی (IntelliJ)اگر پلاگین Android support رو برای intellij فعال کنید و Android sdk رو براش مشخص کنید، مثل اندروید استودیو لاگ‌کت در پایین صفحه هنگام بازبودن پروژه‌ی اندروید نمایان می‌شه.ویژوال استودیو کد (VisualStudio code)برای vscode هم پلاگین‌های مختلف هست مثل Android که دیباگ پروژه‌ی اندروید رو می‌تونید انجام بدید و با زدن F1 می‌تونید گزینه‌ی View logcat رو ببینید. اما باید adb در Environment variableهاتون ست شده باشه. برای انجام این کار ادامه رو بخونید.بقیه‌ی ادیتورها و محیط‌هابرای بقیه‌ی ادیتورها می‌تونید از همون Command line یا terminal استفاده کنید.اضافه‌کردن adb به متغیرهای محلیدر صورتی که بخواید از طریق CommandLine، Terminal و یا ادیتور‌هایی که از طریق command line به adb وصل می‌شن (مثل vscode)، باید adb به متغیرهای محلی اضافه بشه. توی سیستم‌عامل‌های مختلف این کار متفاوت انجام می‌شه.نکته‌ی‌مهم: باید Android sdk داشته‌باشید.ویندوز:روی This PC راست کلیک کنید و Properties رو بزنید تا پنجر‌ه‌ی system در کنترل پنل رو براتون باز کنه.از منوی سمت چپ گزینه‌ی Advanced system settings رو انتخاب کنید.از تب Advanced دکمه‌ی Environment variables رو انتخاب کنید.از بخش System variables متغیر Path رو انتخاب کنید و Edit رو بزنید.Add SDK path to Windows pathدو آدرس platform-tools و tools (دلخواه) رو با زدن دکمه‌ی New اضافه‌کنید.در تصویر محل نصب sdk برای من D&gt;Android&gt;SDK هست و مابقی آدرس در خود فولدر sdk هست.اوکی رو بزنید و یه CMD &#40;یا Powershell باز کنید&#41;تایپ کنید adb و باید ببینید که دستور معتبره و خطا نمی‌ده.لینوکس:در لینوکس باید آدرس adb رو به متغیر سراسری PATH$ اضافه کنیم.در صورتی که از Bash استفاده می‌کنید فایل bashrc. و در صورتی که از zsh استفاده می‌کنید فایل zshrc. رو باز کنید.در صورتی که قبلا به PATH چیزی اضافه‌کردید، در ادامه آدرس sdk platform tools رو اضافه کنید.این خط رو [ترجیحا به ابتدای] فایل اضافه کنید تا ‌متغیر PATH رو override کنید. export PATH=:/home/userName/android/sdk/platform-tools:/home/userName/android/sdk/tools:$PATHو بجای userName/android/sdk آدرس sdk توی سیستم‌خودتون رو وارد کنید.فایل رو سیو کنید و ترمینال رو ریستارت کنید یا دستور source ~/.bashrc # or source .zshrcرو بزنید تا تنظیمات فعال بشن. بعد تایپ کنید adb و باید دستور معتبر باشه.Test adb on linux shellمشاهده‌ی لاگ با دستور adbحالا که توی کامند لاین adb اضافه‌شده می‌تونیم لا‌‌گ‌ها رو توی کامندلاین ببینیم.adb logcat *:Vاین دستور یعنی همه‌ی لاگ‌های موجود رو نشون بده‌. یا دستور:adb logcat Pushe:Vیعنی تمام لاگ‌های با تگ پوشه رو نشون بده.اضافی:اسکریپت Pidcat:یکی از اسکریپت‌های خوبی که رنگ و لعابی به لاگ‌کت میبخشه و خوندنش رو ساده‌تر می‌کنه pidcat هست که یه اسکریپت پایتونه، لذا می‌تونید با نصب پایتون اون رو استفاده کنید. [لینک گیتهاب]برنامه‌ی mLogcat برای ویندوز:در صورتی که از ویندوز استفاده می‌کنید یه نرم‌افزار هست که لاگ‌های adb رو توی یه بستر گرافیکی نشون می‌ده. [لینک سایت]منابع:Android Logcat command-line toolAndroid logcatLogcat important commands</description>
                <category>Mahdi Malvandi</category>
                <author>Mahdi Malvandi</author>
                <pubDate>Mon, 26 Aug 2019 12:01:15 +0430</pubDate>
            </item>
                    <item>
                <title>ساخت پلاگین یونیتی برای لایبرری اندرویدی</title>
                <link>https://virgool.io/pushe-co/%D8%B3%D8%A7%D8%AE%D8%AA-%D9%BE%D9%84%D8%A7%DA%AF%DB%8C%D9%86-%DB%8C%D9%88%D9%86%DB%8C%D8%AA%DB%8C-%D8%A8%D8%B1%D8%A7%DB%8C-%D9%84%D8%A7%DB%8C%D8%A8%D8%B1%D8%B1%DB%8C-%D8%A7%D9%86%D8%AF%D8%B1%D9%88%DB%8C%D8%AF%DB%8C-fqjq9n2qchev</link>
                <description>Android and Unity (Image taken from android.jlelse.eu)ما یه کتابخونه واسه‌ی اندروید (زبان جاوا یا کاتلین و مختص اندروید استودیو) طراحی کردیم، اما می‌خواستیم که بازی‌سازهایی که با موتور بازی‌سازی یونیتی بازی‌هاشونو طراحی می‌کنن هم بتونن از کتابخونمون استفاده کنن. پس بر این شدیم که برای یونیتی یه پلاگین طراحی کنیم که بازی‌ساز‌ها بتونن از این پلاگین تو بازی‌هاشون استفاده کنن و امکانات کتابخونه‌ی ما براشون فراهم باشه. توی این پست من در مورد نحوه‌ی ساخت پلاگین یونیتی برای کتابخونه‌ای که برای اندروید استودیو هست، توضیحاتی می‌دم.۱. آماده‌سازی کتابخانه‌ی اندرویداین که چجوری لایبرری برای اندروید استودیو بسازیم جزو مطالب این پست نیست و فرض بر این می‌گیریم که کتابخونه آماده‌ست و یا در ‌Jcenter آپلود شده. می‌تونید از آموزش آپلود لایبرری در Bintray در موردش بخونید.۲. اضافه‌کردن کتابخانه به یک پروژه‌ی یونیتیحالا یه پروژه‌ی یونیتی خالی می‌سازیم و کارای لازم لایبرری رو توی این پروژه انجام می‌دیم. ابتدا یه پروژه بسازید و پلتفرم اندروید رو انتخاب کنید.انتخاب پلتفرم اندرویدبعدش برای اینکه بتونید کتابخونه‌ی نیتیو اندرویدتون رو اضافه کنید از ابزار UnityJarResolver استفاده‌کنید. نسخه‌ی نهایی پکیج رو دانلود کنید و اونو توی پروژه اضافه کنید.برای اضافه‌کردن پکیج می‌تونید در حالی که پروژه بازه پکیج رو باز کنید تا به پروژه اضافه بشه، یا با راست کلیک روی Assets و انتخاب گزینه‌ی Import &gt; Custom package پکیج رو انتخاب کنید. پس از اینکه پکیج اضافه شد برای آماده‌سازی بستر پلاگین توی پوشه‌ی Assets یک پوشه به اسم پلاگین بسازید و داخل اون یک پوشه به اسم Editor.داخل پوشه‌ی Editor یک فایل به اسم Plugin+Dependencies.xml بسازید. مثلا اگه اسم پلاگینتون MyPluginـه یه فایل به اسم MyPluginDependencies.xml بسازید. شمای Assets به صورت زیر خواهدشد:Assets/
    MyPlugin/
            Editor/
                        MyPluginDependencies.xmlتوی فایل xml لایبرری‌هایی که قراره دانلود بشن و به پروژه اضافه بشن رو تعریف می‌کنیم. برای نمونه می‌تونید فایل مثال Unity jar resolver رو ببینید.برای مثال کتابخونه‌ی پوشه رو به برنامه اضافه می‌کنیم. محتوای فایل xml بصورت زیر خواهد بود:&lt;dependencies&gt;
  &lt;androidPackages&gt;
      &lt;androidPackage spec=&amp;quotco.ronash.android:pushe-base:1.6.3&amp;quot&gt;
            &lt;repositories&gt;
                    &lt;repository&gt;https://maven.google.com&lt;/repository&gt;
           &lt;/repositories&gt;
    &lt;/androidPackage&gt;
  &lt;/androidPackages&gt;
&lt;/dependencies&gt;برای حالت‌های بیشتر کامنت‌های فایل مثال رو بخونید.فایل رو ذخیره کنید و برگردید به یونیتی. از منوی Assets گزینه‌ی Play service resolver، بعد Android resolver و بعد گزینه‌ی Force resolve یا resolve رو انتخاب کنید (با توجه به تحریم‌بودن سرور‌های گریدل باید از ابزار گذر از تحریم استفاده کنید).بعد از سینک (در صورت دانلود موفق ابزار‌های لازم) در پروژه پوشه‌ی Plugin &gt; Android به Assets اضافه خواهد شد. این یعنی کد نیتیو لایبرری شما + تمام لایبرری‌های مورد نیاز اون به برنامه اضافه‌شده و کدها قابل استفاده هستن.تا اینجا Hirarchy پروژه باید بصورت زیر باشه:۳. ساخت اسکریپت برای ساده‌کردن استفاده‌ی توسعه‌دهنده‌هابرای استفاده از کدهای لایبرری در اسکریپت‌های یونیتی باید از کلاس‌های AndroidJavaClass و AndroidJavaObject استفاده کنیم. اما این کار برای توسعه‌دهنده‌های بازی که غالبا آشنایی با این کار ندارن خیلی خوشایند نیست. پس بهتره واسطی بسازیم که استفاده از کد‌های ما راحت و جذاب باشه و خیلی دورازذهن بازی‌ساز نباشه.پس یک اسکریپت می‌نویسیم که توابعی داره و اون توابع کار اجرای کد‌های لایبرری رو بعهده می‌گیرن.[ترجیحا توی پوشه‌ی پلاگین، یه‌جایی] یه اسکریپت سی‌شارپ بسازید و کد‌های زیر رو قراربدید (با توجه به اینکه ما لایبرری پوشه رو اضافه‌کردیم کد‌های اون رو استفاده خواهیم‌کرد):public class Pushe : MonoBehaviour
    {
        private void Start()
        {
            try { InitializePushe(); }
            catch { Debug.Log(&amp;quotFailed to initialize the project somehow!&amp;quot); }
        }
        
        private static void InitializePushe()
        {
          var activityClass = new AndroidJavaClass(&amp;quotcom.unity3d.player.UnityPlayer&amp;quot); // ۱
          var activityContext = activityClass.GetStatic&lt;AndroidJavaObject&gt;(&amp;quotcurrentActivity&amp;quot);//۲
          var pluginClass = new AndroidJavaClass(&amp;quotco.ronash.pushe.Pushe&amp;quot);//۳
            pluginClass.CallStatic(&amp;quotinitialize&amp;quot, activityContext, /* show dialog */true);//۴
        }
}در کد جاوا برای init شدن لایبرری باید کد co.ronash.pushe.Pushe.initialize(context, true)اجرا بشه. یک تابع میسازیم به اسم InitializePushe و کدهای لازم رو اجرا می‌کنیم: برای گرفتن ‌رفرنس کلاس اصلی یونیتی (UnityPlayer).برای گرفتن context اکتیویتی از کلاس اصلی یونیتی.کدهایی که Context لازم دارن، آرگومان لازم رو از انجام موارد ۱ و ۲ می‌گیریم.۳. رفرنس کلاسی که می‌خوایم ازش شی‌ بسازیم و تابعی ازش اجرا کنیم رو می‌گیریم.۴. فراخوانی تابعی که لازم داریم اجرا بشه.برای فراخوانی متد‌های استاتیک:var pluginClass = new AndroidJavaClass(&amp;quotClass_full_packageName&amp;quot);
pluginClass.CallStatic&lt;type&gt;(&amp;quotfunction_name&amp;quot, args...); // no &lt;type&gt; if voidو فراخوانی با ساخت شی از کلاس:AndroidJavaObject obj = new AndroidJavaObject(&amp;quotClass_full_packageName&amp;quot);
Type t = obj.Call&lt;type&gt;(&amp;quotfunction_name&amp;quot); // No &lt;type&gt; if voidبه طور کلی روش فراخونی کد و تعامل با کد نیتیو کتابخونه‌ها اینطوری خواهد بود.پس کسی که از پلاگین استفاده کنه به جای فراخونی دستی کد‌های نیتیو، کافیه از توابعی که آماده‌شده استفاده کنه:var activityClass = new AndroidJavaClass(&amp;quotcom.unity3d.player.UnityPlayer&amp;quot);
var activityContext = activityClass.GetStatic&lt;AndroidJavaObject&gt;(&amp;quotcurrentActivity&amp;quot);
var pluginClass = new AndroidJavaClass(&amp;quotco.ronash.pushe.Pushe&amp;quot);
pluginClass.CallStatic(&amp;quotinitialize&amp;quot, activityContext, /* show dialog */true);To:InitializePushe();حالا کافیه اسکریپتی که نوشتیم تسط توسعه‌دهنده به یک GameObject متصل بشه وکدهاش فراخوانی بشن. در این صورت کد‌هایی که ما در لایبرری نیتیو نوشتیم فراخوانی خواهندشد.لینک پروژه‌ی نمونهابزار اضافه‌کردن dependency library به پروژه</description>
                <category>Mahdi Malvandi</category>
                <author>Mahdi Malvandi</author>
                <pubDate>Fri, 09 Aug 2019 00:30:46 +0430</pubDate>
            </item>
                    <item>
                <title>آپلود کردن لایبرری اندروید در bintray با گریدل</title>
                <link>https://virgool.io/pushe-co/%D8%A2%D9%BE%D9%84%D9%88%D8%AF-%DA%A9%D8%B1%D8%AF%D9%86-%D9%84%D8%A7%DB%8C%D8%A8%D8%B1%D8%B1%DB%8C-%D8%A7%D9%86%D8%AF%D8%B1%D9%88%DB%8C%D8%AF-%D8%AF%D8%B1-bintray-%D8%A8%D8%A7-%DA%AF%D8%B1%DB%8C%D8%AF%D9%84-gz7aiold2agq</link>
                <description>یه بخش از پروژم رو تبدیل کردم به یه ماژول که از کد ماژول اصلی جدا بشه و بعدا هم بتونم ازش تو پروژه‌های دیگه استفاده کنم. با خودم گفتم چرا تبدیلش نکنم به لایبرری و نذارمش توی Bintray که بعدا مثل کتابخونه‌های عادی به برنامه‌ام اضافه کنمش؟چنتا مقاله و داکیومنت رو خوندم اما هر کدوم یه جور نقص داشتن و یه مدل ارور داشتن. دنبال یه منبع بودم که خلاصه و مفید کارم رو راه بندازه و کتابخونه‌ام رو آپلودش کنم. از ترکیب چیزایی که خوندم تونستم بالاخره این کار رو انجام بدم. تو این مقاله نحوه‌ی انجام کارم رو توضیح می‌دم.قدم اول: حساب Bintrayباید اول توی سایت Bintray حساب بسازید و وارد شید.بعد از اینکه وارد شدید یه سازمان (Organization) بسازید.ساخت organizationبعدش روی سازمانی که ساختید کلیک کنید و یه مخزن (Repository) بسازید.ساخت repositoryبعد از وارد کردن نام مخزن،‌‌‌ Type اون رو Maven قرار بدید، چون قراره کتابخونه برای اندروید باشه.برای مثال من اسم سازمان رو mah-d انتخاب کردم و اسم مخزن رو maven. اینا رو باید حواسمون باشه، چون باهاشون کار داریم.حالا باید یه پکیج بسازیم توی مخزن. روی مخزن کلیک کنید و Add New Package رو انتخاب کنید.ساخت پکیجاطلاعات وارد شده مختص کتابخونه‌ی شماست و اطلاعاتی که من توی عکس گذاشتم صرفا مثال هست.تا اینجا کارهای مربوط سایت تموم شده و بهتره بریم سراغ اندروید استودیو.قدم دوم: راه‌اندازی اندروید استودیواین دو خط رو به بلاک dependencies مربوط به فایل پروژه (و نه ماژول‌ها) اضافه کنید:classpath &#039;com.github.dcendents:android-maven-gradle-plugin:2.1&#039;
classpath &#039;com.jfrog.bintray.gradle:gradle-bintray-plugin:1.8.4&#039;برای راحتی کار کل کد‌هایی که قراره اضافه‌کنیم رو توی یه فایل میذاریم و ماژولی که قراره آپلود بشه از این فایل استفاده خواهد کرد. پس کنار فایل گریدل پروژه (و دوباره، ماژول نه) یک فایل می‌سازیم به اسم bintray.gradle و کدهای زیر رو به ترتیب داخلش قرار می‌دیم.دو تا پلاگین رو اول توی فایل فعال می‌کنیم:apply plugin: &#039;com.github.dcendents.android-maven&#039;
apply plugin: &#039;com.jfrog.bintray&#039;بعد متغیرهای لازم رو می‌سازیم (برای اینکه متغیر‌ها همه‌جا قابل استفاده باشن اونا رو توی بلاک ext می‌ذاریم).ext {
    bintrayRepo = &#039;maven&#039; // نام مخزن
    bintrayName = &#039;pulp&#039; // نام پکیج
    // publishedGroupId:artifact:libraryVersion
    publishedGroupId = &#039;ir.malv.utils&#039; // پکیج‌نیم لایبرری
    artifact = &#039;pulp&#039; // اسم ماژول
    libraryVersion = &#039;0.0.1&#039; // نسخه
    libraryName = &#039;Pulp&#039; // عنوان لایبرری
    libraryDescription = &#039;Simple logger&#039; // توضیح برای لایبریی
    siteUrl = &#039;https://github.com/mahdi-malv&#039; // لینک سایت
    gitUrl = &#039;https://github.com/mahdi-malv/pulp.git&#039; // لینک گیت
    developerId = &#039;mahdi-malv&#039; // آی‌دی توسعه‌دهنده
    developerName = &#039;Mahdi Malvandi&#039; // اسم توسعه‌دهنده
    developerEmail = &#039;email@gmail.com&#039; // ایمیل
    licenseName = &#039;The Apache Software License, Version 2.0&#039; // عنوان لایسنس
    licenseUrl = &#039;http://www.apache.org/licenses/LICENSE-2.0.txt&#039; // لینک لایسنس
    allLicenses = [&quot;Apache-2.0&quot;] // همه‌ی لایسنس‌ها
}نام مخرن: مخزنی که در ابتدا ساختید.نام پکیج: پکیجی که برای اون مخزن ساختید.پکیج‌نیم لایبرری: پکیج‌نیمی که ماژول داره (همون application id)اسم ماژول: تو منوی projects اندروید استودیو و فایل settings.gradle ماژول عنوانی داره که منظور همونه.نسخه‌: نسخه‌ای که ماژول داره.عنوان: به دلخواه یه نام برای کتابخونه. مثلا همون اسم ماژول.لینک‌ها: برای لایبرری یک ریپوی گیت بسازید و اون رو برای issues، گیت استفاده کنید، برای سایت هم می‌تونید سایت خودتون رو بذارید اگر دارید، اگر هم نه مثل اینجا صرفا لینک حساب گیت‌هاب رو بذارید.لایسنس‌ها: در مورد لایسنس‌ها اینجا بیشتر بخونید: https://opensource.org/licenses با این متغیرها کد گریدل لایبرری شما بدین صورت خواهد بود:publishedGroupId:artifact:libraryVersion&#x60;ir.malv.utils:pulp:0.0.1بعد از اینکه این متغیر‌ها درست تنظیم‌شدن، کد‌های زیر رو اضافه کنید.group = publishedGroupId
version = libraryVersion

install {
    repositories.mavenInstaller {
        pom.project {
            packaging &#039;aar&#039;
            groupId publishedGroupId
            artifactId artifact
            name libraryName
            description libraryDescription
            url siteUrl
            licenses {
                license {
                    name licenseName
                    url licenseUrl
                }
            }
            developers {
                developer {
                    id developerId
                    name developerName
                    email developerEmail
                }
            }
            scm {
                connection gitUrl
                developerConnection gitUrl
                url siteUrl
            }
        }
    }
}
task sourcesJar(type: Jar) {
    classifier = &#039;sources&#039;
    from android.sourceSets.main.java.srcDirs
}
task javadoc(type: Javadoc) {
   source = android.sourceSets.main.java.srcDirs
   classpath += project.files(android.getBootClasspath().join(File.pathSeparator))
}
task javadocJar(type: Jar, dependsOn: javadoc) {
    classifier = &#039;javadoc&#039;
    from javadoc.destinationDir
}
artifacts {
    archives javadocJar
    archives sourcesJar
}و حالا این کدها رو اضافه کنید که کانفیگ لایبرری در Bintray هست.Properties properties = new Properties()
properties.load(project.rootProject.file&#40;&#039;local.properties&#039;&#41;.newDataInputStream())
bintray {
    user = properties.getProperty(&quot;bintray.user&quot;)
    key = properties.getProperty(&quot;bintray.apikey&quot;)
    configurations = [&#039;archives&#039;]
    pkg {
        repo = bintrayRepo
        name = bintrayName
        desc = libraryDescription
        userOrg = &#039;mah-d&#039;
        websiteUrl = siteUrl
        vcsUrl = gitUrl
        licenses = allLicenses
        dryRun = false
        publish = true
        override = false
        publicDownloadNumbers = true
        version {
            desc = libraryDescription
        }
    }
}توی این بلاک چنتا فیلد مهم هست. یکی userOrg که همون سازمان (Organization) هست که در ابتدای قدم اول ساختید.فیلدهای user و key:برای ارتباط با Bintray یک نام‌کاربری لازمه و یک ApiKey. نام کاربری که مشخصه، اما ApiKey رو باید از سایت بردارید. روی پروفایل کلیک کنید و Edit profile رو بزنید و مطابق تصویر ApiKey رو کپی کنید.گرفتن API keyتوی فایل local.properties دوتا فیلد اضافه کنید:bintray.user=userName
bintray.apikey=apiKey!:‌دقت کنید که مقدارها رو توی double quote یا single quote نذارید.دلیل قراردادن این مقدارها توی این فایل اینه که چون حساس و مهم هستن بهتره بیان توی فایلی که توی .gitignore هست و توی گیت پوش نمی‌شه.کار فایل bintray.gradle تموم‌شده و حالا کافیه که به فایل گریدل ماژول اضافه کنیم و گریدل رو سینک کنیم:این کد رو به انتهای فایل build.gradle (مربوط به ماژول) اضافه کنید:apply from: &#039;../bintray.gradle&#039;این یعنی فایل توی یک فولدر بالاتر از محل کنونیه (اگر فایل رو جای دیگه‌ای گذاشتید، آدرس درست رو قرار بدید).بعد از سینک کردن باید تسک‌های clean و install رو ران کنید. دوبار کلید Ctrl رو بزنید و کامند زیر رو وارد کنید و Enter رو بزنید. دقت کنید که عملیات موفقیت‌آمیز باشه و اگر خطا داشتید ابتدا خطا رو رفع کنید بعد دوباره کامند رو ران کنید.gradle clean installهمچنین می‌تونید توی ترمینال یا CMD هم این کار رو انجام بدید.# Cmdgradle.bat clean install# Terminal./gradlew clean installبعد از اون تسک bintrayUpload رو باید ران کنید. از منوی تسک‌های ماژول بخش publishing می‌تونید اون رو انتخاب کنید.بعد از اتمام اجرا، مطمئن شید که تسک موفقیت‌آمیز بوده. بعد می‌تونید برید به سایت و بعد از رفرش ببینید که فایل‌های جدید اضافه‌شدن.الآن می‌تونید از همین طریق با url لایبرری رو به یک پروژه‌ی اندروید اضافه کنید:توی صفحه‌ی پکیج، لینکی که به لایبرری اشاره داره رو باید به repositories اضافه‌کنید.لینک مخزن که پکیج توی اون قرار داره
repositories {
    google()
    jcenter()
    maven { url &#039;https://dl.bintray.com/mah-d/maven&#039; }
}و بعد توی dependencies کد لایبرری رو اضافه‌کنید:کد dependency لایبرریهم‌چنین در صورتی که لایبرری مناسب ‌Jcenter (مخزن اصلی که توی اندروید به طور پیش‌فرض اضافه‌می‌شه) هست می‌تونید اون رو به Jcenter اضافه کنید. با این کار نیاز به اضافه‌کردن لینک مخزن نیست.گیت‌هاب لایبرری و همه‌ی این کدها رو هم می‌تونید اینجا پیدا کنید.لینک مقاله‌های مفید و مرتبط:Simple way to publish your library to JcenterBintray gradle pluginPublishing to bintray with gradle</description>
                <category>Mahdi Malvandi</category>
                <author>Mahdi Malvandi</author>
                <pubDate>Thu, 01 Aug 2019 23:43:23 +0430</pubDate>
            </item>
            </channel>
</rss>