آپدیت اپلیکیشن اندروید

شروع موضوع توسط hamid54000 ‏13 سپتامبر 2015 در انجمن Action Script 3

  1. hamid54000

    hamid54000 Member

    ارسال‌ها:
    57
    تشکر شده:
    40
    امتیاز دستاورد:
    18
    سلام به دوستان و اساتید محترم
    چون اولین اپلیکیشن اندروید به اتمام رساندم دلم نیومد فلش را ترک و به جاوا مهاجرت کنم چون که برتری فلش در ساخت ملتی مدیا حرفی برای گفتن باقی نمی گذاره با یک تیر دو نشان.

    اساتید عزیز روی برنامه ای دارم کار میکنم که وقتی به اتمام برسه باید هر دو هفته یکبار در صورت دسترسی برنامه به اینترنت خودکار اپدیت شود.

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


    public function start():void
    { var fileLoader:URLLoader = new URLLoader
    fileLoader.dataFormat = URLLoaderDataFormat.BINARY;
    fileLoader.addEventListener(Event.COMPLETE,downloadSuccess);
    var url:URLRequest = new URLRequest("http://www.example.com/updates/"+targetVersion+".apk");
    fileLoader.load(url);
    }
    private function downloadSuccess(event:Event):void
    {
    var fileLoader:URLLoader = event.target as URLLoader;
    fileLoader.removeEventListener(Event.COMPLETE,downloadSuccess);
    var fs:FileStream = new FileStream();
    var file:File = File.userDirectory.resolvePath(targetVersion+".apk");
    fs.open(file,FileMode.WRITE);
    fs.writeBytes(fileLoader.data);
    fs.close();
    //insert native extension call here.
    }
     
    نوشته شده توسط hamid54000 در ‏13 سپتامبر 2015
  2. Fanous

    Fanous Well-Known Member

    ارسال‌ها:
    761
    تشکر شده:
    540
    امتیاز دستاورد:
    93
    سلام
    روش حرفه ای آپدیت اینه که آپدیت های جدید رو در همون استوری که برنامه تون رو قرار دادین ( مثلا بازار ) آپلود کنین تا پس از بررسی توسط همون استور منتشر بشه
    دانلود مستقیم کار غیرحرفه ای محسوب میشه ، چون تو این روش میشه برنامه های مخرب رو در قالب برنامه اصلی به کاربر تحمیل کرد
    شما فقط بهتره تابعی بنویسین که در صورت آپدیت برنامه ، به کاربر اطلاع داده بشه و خود کاربر از طریق استور اقدام به آپدیت بکنه
     
    آخرین ویرایش: ‏13 سپتامبر 2015
    نوشته شده توسط Fanous در ‏13 سپتامبر 2015
  3. hamid54000

    hamid54000 Member

    ارسال‌ها:
    57
    تشکر شده:
    40
    امتیاز دستاورد:
    18
    سلام فانوس عزیز
    آره نظر شما خیلی بهتره
    اینکه به کاربر اعلام کنه حرفه ای تره
    بچه ها بحث خوبی را شروع کردیم بیایید با هم دیگه به دانشمون بیافزاییم هرچند من خیلی برنامه نویس خوبی نیستم ولی بدلیل رشته تحصیلی و آشنایی با دیگر زبان های برنامه نویسی در دانشگاه براحتی دستورات as3 ترجمه می کنم.
     
    نوشته شده توسط hamid54000 در ‏13 سپتامبر 2015
  4. flash.developer

    flash.developer Active Member

    ارسال‌ها:
    206
    تشکر شده:
    81
    امتیاز دستاورد:
    28
    به نظر بنده برای بروزرسانی نرم‌افزارهای ایر چند نکته رو رعایت کنید.
    دو نوع بروزرسانی برای این کار وجود داره
    ۱- بروزرسانی بانک اطلاعاتی
    ۲- بروزرسانی و باگزدایی خود نرم افزار
    در مورد دوم با توجه به اینکه خروجی رانتایم ایر حجم زیادی داره توصیه میشه بیس برنامه رو طوری بنویسید که کاربر نیاز نداشته باشه هر بار برای بروزرسانی این حجم رو بارگزاری کنه و فقط یکبار این حجم دریافت بشه. در واقع شما کدهای اصلی رو در بیس برنامه نمی‌نویسید.
    بیس اصلی فقط حکم کانتینر و میزبان رو داره
     
    نوشته شده توسط flash.developer در ‏15 سپتامبر 2015
  5. Fanous

    Fanous Well-Known Member

    ارسال‌ها:
    761
    تشکر شده:
    540
    امتیاز دستاورد:
    93
    سلام
    ممنون میشم بیشتر توضیح بدین مخصوصا در مورد اینکه فرمودین برنامه رو طوری بنویسیم که در بروزرسانی ها حجم کمی دانلود بشه
    الان روش من اینه که وقتی برنامه ای رو آپدیت می کنم ، فایل apk جدید رو با ورژن بالاتر در استورها ( مثل بازار و ... ) آپلود می کنم و اونها پس از بررسی ورژن جدید رو منتشر می کنن
    خب تو این روش هربار برنامه بطور کامل کمپایل میشه و حجمش اگه بیشتر نشه کمتر هم نمیشه
    چطوری میشه کاری کرد که حجم بروزرسانی ها کمتر بشه؟
    مثلا اگه حتی یک غلط املایی در برنامه تصحیح بشه مجبوریم برنامه رو کلا یک بار دیگه کمپایل کنیم
    چجوری میشه مشخص کرد فقط اون قسمت آپدیت بشه؟
    واقعا راه حلی داره این کار؟
     
    نوشته شده توسط Fanous در ‏16 سپتامبر 2015
  6. flash.developer

    flash.developer Active Member

    ارسال‌ها:
    206
    تشکر شده:
    81
    امتیاز دستاورد:
    28
    سلام برای اینکار شما بیس برنامه رو ثابت در نظر بگیرید و برنامه اصلی رو در فایلهای مجزا بنویسید و اونها رو در فایل اصلی که بصورت رانتایم هست لود کنید.
    حالا برای آپدیت شما فایلهای جانبی رو که حجم آنچنانی ندارد بروزرسانی می‌کنید و در کنار فایل اصلی قرار می‌دهید.
     
    نوشته شده توسط flash.developer در ‏22 سپتامبر 2015
  7. 2480160076

    2480160076 Member

    ارسال‌ها:
    32
    تشکر شده:
    0
    امتیاز دستاورد:
    6
    سلام
    برای نوشتن تابع که در صورت اپدیت برنامه به کاربر اطلاع داده بشه باید از چه کدی استفاده کرد ؟؟؟ ممنون میشم اگه جواب بدید
     
    نوشته شده توسط 2480160076 در ‏5 جولای 2017
  8. Fanous

    Fanous Well-Known Member

    ارسال‌ها:
    761
    تشکر شده:
    540
    امتیاز دستاورد:
    93
    سلام
    برای اینکار شما به یک هاست نیاز دارین که آخرین ورژن موجود رو اونجا بصورت یک عدد ذخیره کنین
    توی اپلیکیشن هم ورژن اپ رو بصورت یک عدد ذخیره می کنین
    بعد از توی اپلیکیشن هرموقع اجرا شد ، ورژن سرور و اپ رو مقایسه کنین و اگه ورژن سرور بیشتر بود ، پیغام مربوطه رو نشون بده
     
    نوشته شده توسط Fanous در ‏5 جولای 2017
  9. 2480160076

    2480160076 Member

    ارسال‌ها:
    32
    تشکر شده:
    0
    امتیاز دستاورد:
    6
    ممنون فانوس جان
    من نرم افزارم رو در کافه بازار قرار دادم
    حالا در اپلیکیشن ورژن اپ رو چطوری بصورت عدد ذخیره کنم؟؟؟
     
    نوشته شده توسط 2480160076 در ‏6 جولای 2017
  10. Fanous

    Fanous Well-Known Member

    ارسال‌ها:
    761
    تشکر شده:
    540
    امتیاز دستاورد:
    93
    باید قبل از اینکه برنامه تون رو میذاشتین توی بازار ، این کار رو می کردین:
    PHP:
    var current_version:Number=1;
     
    نوشته شده توسط Fanous در ‏6 جولای 2017
  11. 2480160076

    2480160076 Member

    ارسال‌ها:
    32
    تشکر شده:
    0
    امتیاز دستاورد:
    6
    خوب حالا باید چکار کنم؟
     
    نوشته شده توسط 2480160076 در ‏6 جولای 2017
  12. Fanous

    Fanous Well-Known Member

    ارسال‌ها:
    761
    تشکر شده:
    540
    امتیاز دستاورد:
    93
    شما باید اپلیکیشن تون رو آپدت کنین و این دستورات رو داخلش قرار بدین:
    کد (Text):
    var current_version:Number=1;
    check_version(); //---------- اجرای این دستور در محل مناسب
    function check_version()
    {
        var ver_loader:URLLoader = new URLLoader();
        var ver_request:URLRequest= new URLRequest("http://......../checkversion.php");
        ver_loader.addEventListener(Event.COMPLETE, ver_url_loaded);
        ver_loader.addEventListener(IOErrorEvent.IO_ERROR, ver_url_not_loaded);
        ver_loader.load(ver_request);
        function ver_url_loaded(e:Event)
        {
            //trace(">>ok",e.target.data);
            if ( Number(e.target.data)>current_version)
            {
                //------- دستورات مربوط به نمایش پیغام بروز رسانی
            }
        }
        function ver_url_not_loaded(e:Event)
        {
            trace(">>!!",e.target.data);
            //--------- دستورات مربوط به بروز خطا
        }
    }
    این هم کد php
    کد (Text):
    <?php
    include_once("config.php");
    $con = mysqli_connect("$db_host", "$db_user", "$db_pass", "$db_data");
    mysqli_set_charset($con,'utf8');
    $query = "SELECT version FROM info";
    $Text_to_send="";
    $result = mysqli_query($con, $query);
    while($persons = mysqli_fetch_array($result)){
        $Text_to_send=$persons['version'];
    }
    echo $Text_to_send;
    mysqli_close($con);
    ?>
     
    نوشته شده توسط Fanous در ‏7 جولای 2017
  13. 2480160076

    2480160076 Member

    ارسال‌ها:
    32
    تشکر شده:
    0
    امتیاز دستاورد:
    6
    میشه سورس اون را برام بفرستید ؟؟؟
     
    نوشته شده توسط 2480160076 در ‏7 جولای 2017
  14. 2480160076

    2480160076 Member

    ارسال‌ها:
    32
    تشکر شده:
    0
    امتیاز دستاورد:
    6
    ممنون فانوس جان فک کنم تونستم
    فقط یه سوال آیا در اپدیت بعدی اپلیکیشنم لازم هست که این کد را دستکاری کنم؟؟
     
    نوشته شده توسط 2480160076 در ‏7 جولای 2017
  15. Fanous

    Fanous Well-Known Member

    ارسال‌ها:
    761
    تشکر شده:
    540
    امتیاز دستاورد:
    93
    بله
    هر زمان خودتون یک ورژن جدید ارائه کردین ، فقط کافیه var current_version:Number=1; رو یکی زیاد کنین
    مثلا بشه
    var current_version:Number=2;
    و هر زمان ورژن جدید توی بازار منتشر شد ، ورژن موجود توی سرور رو یکی زیاد کنین
    موفق باشین
     
    نوشته شده توسط Fanous در ‏7 جولای 2017
    2480160076 از این پست تشکر کرده است.
  16. 2480160076

    2480160076 Member

    ارسال‌ها:
    32
    تشکر شده:
    0
    امتیاز دستاورد:
    6
    ممنون
     
    نوشته شده توسط 2480160076 در ‏7 جولای 2017

به اشتراک بگذارید