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

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

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

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


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.
}
 

Fanous

Well-Known Member
سلام
روش حرفه ای آپدیت اینه که آپدیت های جدید رو در همون استوری که برنامه تون رو قرار دادین ( مثلا بازار ) آپلود کنین تا پس از بررسی توسط همون استور منتشر بشه
دانلود مستقیم کار غیرحرفه ای محسوب میشه ، چون تو این روش میشه برنامه های مخرب رو در قالب برنامه اصلی به کاربر تحمیل کرد
شما فقط بهتره تابعی بنویسین که در صورت آپدیت برنامه ، به کاربر اطلاع داده بشه و خود کاربر از طریق استور اقدام به آپدیت بکنه
 
آخرین ویرایش:
سلام
روش حرفه ای آپدیت اینه که آپدیت های جدید رو در همون استوری که برنامه تون رو قرار دادین ( مثلا بازار ) آپلود کنین تا پس از بررسی توسط همون استور منتشر بشه
دانلود مستقیم کار غیرحرفه ای محسوب میشه ، چون تو این روش میشه برنامه های مخرب رو در قالب برنامه اصلی به کاربر تحمیل کرد
شما فقط بهتره تابعی بنویسین که در صورت آپدیت برنامه ، به کاربر اطلاع داده بشه و خود کاربر از طریق استور اقدام به آپدیت بکنه

سلام فانوس عزیز
آره نظر شما خیلی بهتره
اینکه به کاربر اعلام کنه حرفه ای تره
بچه ها بحث خوبی را شروع کردیم بیایید با هم دیگه به دانشمون بیافزاییم هرچند من خیلی برنامه نویس خوبی نیستم ولی بدلیل رشته تحصیلی و آشنایی با دیگر زبان های برنامه نویسی در دانشگاه براحتی دستورات as3 ترجمه می کنم.
 

flash.developer

Active Member
به نظر بنده برای بروزرسانی نرم‌افزارهای ایر چند نکته رو رعایت کنید.
دو نوع بروزرسانی برای این کار وجود داره
۱- بروزرسانی بانک اطلاعاتی
۲- بروزرسانی و باگزدایی خود نرم افزار
در مورد دوم با توجه به اینکه خروجی رانتایم ایر حجم زیادی داره توصیه میشه بیس برنامه رو طوری بنویسید که کاربر نیاز نداشته باشه هر بار برای بروزرسانی این حجم رو بارگزاری کنه و فقط یکبار این حجم دریافت بشه. در واقع شما کدهای اصلی رو در بیس برنامه نمی‌نویسید.
بیس اصلی فقط حکم کانتینر و میزبان رو داره
 

Fanous

Well-Known Member
به نظر بنده برای بروزرسانی نرم‌افزارهای ایر چند نکته رو رعایت کنید.
دو نوع بروزرسانی برای این کار وجود داره
۱- بروزرسانی بانک اطلاعاتی
۲- بروزرسانی و باگزدایی خود نرم افزار
در مورد دوم با توجه به اینکه خروجی رانتایم ایر حجم زیادی داره توصیه میشه بیس برنامه رو طوری بنویسید که کاربر نیاز نداشته باشه هر بار برای بروزرسانی این حجم رو بارگزاری کنه و فقط یکبار این حجم دریافت بشه. در واقع شما کدهای اصلی رو در بیس برنامه نمی‌نویسید.
بیس اصلی فقط حکم کانتینر و میزبان رو داره

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

flash.developer

Active Member
سلام برای اینکار شما بیس برنامه رو ثابت در نظر بگیرید و برنامه اصلی رو در فایلهای مجزا بنویسید و اونها رو در فایل اصلی که بصورت رانتایم هست لود کنید.
حالا برای آپدیت شما فایلهای جانبی رو که حجم آنچنانی ندارد بروزرسانی می‌کنید و در کنار فایل اصلی قرار می‌دهید.
 

2480160076

Member
سلام
روش حرفه ای آپدیت اینه که آپدیت های جدید رو در همون استوری که برنامه تون رو قرار دادین ( مثلا بازار ) آپلود کنین تا پس از بررسی توسط همون استور منتشر بشه
دانلود مستقیم کار غیرحرفه ای محسوب میشه ، چون تو این روش میشه برنامه های مخرب رو در قالب برنامه اصلی به کاربر تحمیل کرد
شما فقط بهتره تابعی بنویسین که در صورت آپدیت برنامه ، به کاربر اطلاع داده بشه و خود کاربر از طریق استور اقدام به آپدیت بکنه
سلام
برای نوشتن تابع که در صورت اپدیت برنامه به کاربر اطلاع داده بشه باید از چه کدی استفاده کرد ؟؟؟ ممنون میشم اگه جواب بدید
 

Fanous

Well-Known Member
سلام
برای نوشتن تابع که در صورت اپدیت برنامه به کاربر اطلاع داده بشه باید از چه کدی استفاده کرد ؟؟؟ ممنون میشم اگه جواب بدید
سلام
برای اینکار شما به یک هاست نیاز دارین که آخرین ورژن موجود رو اونجا بصورت یک عدد ذخیره کنین
توی اپلیکیشن هم ورژن اپ رو بصورت یک عدد ذخیره می کنین
بعد از توی اپلیکیشن هرموقع اجرا شد ، ورژن سرور و اپ رو مقایسه کنین و اگه ورژن سرور بیشتر بود ، پیغام مربوطه رو نشون بده
 

2480160076

Member
ممنون فانوس جان
من نرم افزارم رو در کافه بازار قرار دادم
حالا در اپلیکیشن ورژن اپ رو چطوری بصورت عدد ذخیره کنم؟؟؟
 

Fanous

Well-Known Member
ممنون فانوس جان
من نرم افزارم رو در کافه بازار قرار دادم
حالا در اپلیکیشن ورژن اپ رو چطوری بصورت عدد ذخیره کنم؟؟؟
باید قبل از اینکه برنامه تون رو میذاشتین توی بازار ، این کار رو می کردین:
PHP:
var current_version:Number=1;
 

Fanous

Well-Known Member
خوب حالا باید چکار کنم؟

شما باید اپلیکیشن تون رو آپدت کنین و این دستورات رو داخلش قرار بدین:
کد:
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
کد:
<?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);
?>
 

2480160076

Member
شما باید اپلیکیشن تون رو آپدت کنین و این دستورات رو داخلش قرار بدین:
کد:
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
کد:
<?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

Well-Known Member
ممنون فانوس جان فک کنم تونستم
فقط یه سوال آیا در اپدیت بعدی اپلیکیشنم لازم هست که این کد را دستکاری کنم؟؟
بله
هر زمان خودتون یک ورژن جدید ارائه کردین ، فقط کافیه var current_version:Number=1; رو یکی زیاد کنین
مثلا بشه
var current_version:Number=2;
و هر زمان ورژن جدید توی بازار منتشر شد ، ورژن موجود توی سرور رو یکی زیاد کنین
موفق باشین
 

جدیدترین ارسال ها

بالا