# Native Code > برنامه نویسی موبایل > Android Studio >  داخل کردن فایلهای مستقل SWF درون apk اندروید 4 به بالا ( نصب و اجرای آن )

## W I N G S

با سلام
این اولین پست منه با سایت خوب شما توسط سایت خوبه www.kamalan.com آشنا شدم
--------
در زمینه برنامه نویسی برای اندروید آشنا نیستم

اما کمی در ساخت فایلهای swf توسط برنامه ی Adobe Flash  کار کردم

قبلا ها که اندروید 2.3 بود میتونستم فایلهای ساخته شده توسط برنامه ی Adobe Flash را
با جابجایی فایل swf با برنامه ی APK Edit درون یه فایل apk که دارای swf بود قرار بدم تا فایل من اجرا بشه
اما حالا که اندروید 4 دیگه swf را پشتیبانی نمیکنه پس از جابجایی و نصب و اجرا فقط یه صفحه سفید نمایش داده میشه
===============
پس از گشتن های بی شمار در اینترنت به سایتی برخوردم که گویا آموزش این کار رو داره این لینکشه
http://littlebigplay.com/shajby/java/

===============
حالا سوال من اینکه :

در این آموزش چه برنامه هایی رو باید روی کامپیوتر نصب کرد ؟

آیا در نهایت میشه با این آموزش فایلهای مستقل swf ی که قبلا طراحی شدن را به صورت یک فایل apk نصبی یا درون یک فایل apk جا داد که با نصب و اجرا در روی اندروید 4 قابل استفاده باشن؟

---------
خلاصه اینکه من میخوام فایلهای swf م را به صورت apk قابل نصب روی گوشی در بیارم (اندروید4به بالا)
چی کار کنم  :کف کرده!:  ؟
با سپاس از زحمتی که برای جواب میکشید

----------


## Nevercom

برای اینکه بتونید از این آموزش استفاده کنید (و در کل بتونید برای اندروید برنامه بنویسید) از سایت developer.android.com فایل adt-bundle رو برای پلتفرمتون (ویندوز - لینوکس - مک) دانلود کنید (حجمی حدود 450 مگابایت داره و البته ایران تحریم هست و باید به فکر دور زدن باشید.
و البته باید Java Development Kit یا JDK نسخه ی 1.6 به بالا رو هم داشته باشید که این مورد دوم رو براحتی میتونید تو سایت های دانلود پیدا کنید (آخه Oracle هم ما رو تحریم کرده)

این رو که دانلود کنید آماده ی استفاده از آموزش هستید
تو این آموزش فایل SWF در یک صفحه ی وب تو برنامه تون لود میشه، همین
که البته بازم نیازه Flash Player نصب باشه

----------


## W I N G S

> ....دانلود کنید (حجمی حدود 450 مگابایت داره و البته ایران تحریم هست و باید به فکر دور زدن باشید.
> و البته باید Java Development Kit یا JDK نسخه ی 1.6 به بالا رو هم داشته باشید...
> .
> .
> .
> این رو که دانلود کنید آماده ی استفاده از آموزش هستید
> تو این آموزش فایل SWF در یک صفحه ی وب تو برنامه تون لود میشه، همین
> که البته بازم نیازه Flash Player نصب باشه


ممنون از پاسختون

دوست عزیز شما یا دیگر دوستانی که این ابزار آلات رو دارن میشه یه swf رو اینجوری apk کنه تا من نصب کنم
ببینم اجرای اون در گوشی همونطور که گفتید (( SWF در یک صفحه ی وب تو برنامه تون لود میشه)) با چه کیفیتیه ؟
تا ببینم آیا (دست وپا کردن) این ابزار آلات  ارزشش رو داره یا نه ؟

----------


## hamid_hr

اگه فقط ميخواي تبديل كني سرچ كن convertor زياد هست
https://www.google.com/#hl=en&tbo=d&...w=1360&bih=653

----------


## W I N G S

> اگه فقط ميخواي تبديل كني سرچ كن convertor زياد هست
> biw=1360&bih=653[/url]


منظورم را بهتر بیان میکنم
دوست عزیز این convertor ها فایل های swf که به صورت فیلم و کارتون هستند (Video) را به صورت فایلهای رایج ویدئویی در میاره تا در گوشی قابل پخش باشه
اما منظور من swf هایی هست مثل بازی و برنامه که دارای دگمه و حرکاتی هستند که براشون برنامه نویسی شده در محیط Adobe Flash 
این ها رو همونطور که خودتون بهتر میدونید نمیشه به همین راحتی تبدیل کرد یا باید از اول برنامه نویسی بشن با قوانین Adobe AIR  یا مثل همین کلک در محیط وب لود بشن

باز از کمکتون ممنونم

-------------------------------

اگه کسی چنین swf را با روش بالا apk کنه ممنون میشم تا امتحان کنم (البته اگه ابزارآلاتش رو از قبل داره  :خجالت:  )

----------


## Nevercom

> ممنون از پاسختون
> 
> دوست عزیز شما یا دیگر دوستانی که این ابزار آلات رو دارن میشه یه swf رو اینجوری apk کنه تا من نصب کنم
> ببینم اجرای اون در گوشی همونطور که گفتید (( SWF در یک صفحه ی وب تو برنامه تون لود میشه)) با چه کیفیتیه ؟
> تا ببینم آیا (دست وپا کردن) این ابزار آلات  ارزشش رو داره یا نه ؟


 فایلتون رو برام بفرستید تا طبق همون آموزش فایل apk رو بسازم و براتون ارسال کنم

----------


## W I N G S

> فایلتون رو برام بفرستید تا طبق همون آموزش فایل apk رو بسازم و براتون ارسال کنم


ممنون دوست عزیز که زحمت میکشید  :تشویق: 
این لیک دانلود فایل من
http://uplod.ir/57fj4l5jiovl/Puzzle.zip.htm
توش یه فایل بازی به اسم puzzle.swf که حجمش کمه ولی خوش ساخته (من نساختمش  :لبخند گشاده!:   )
همراه با 3 سایز مختلف png که گویا برای icon لازم میشه (درست کردم که بیشتر زحمتتون ندم)
جمعا 85 کیلو بایته که زیاد زحمت دانلود رو هم نکشید ( که حکایت در دیزی بازه حیا گربه کجا رفته ، نشه )  :چشمک: 
---------
من روی گوشی آخرین ورژن Adobe AIR 3.5.0.106 و Adobe Flash Player v11.1.115.36 را دارم رو همین حساب این بازی روش خوب اجرا میشه
اما با برنامه ی کمکیه SWF Player - Flash ®FileViewer V 1.61-build 311
که میخوام با روش بالا مستقل تر با زدن آیکون اجرا بشه ( حالا مثلا در همون محیط وب که گفتید )

 :لبخند:

----------


## Nevercom

Puzzle-signed.apk -  257 KB

البته تستش نکردم چون گوشیم فلش پلیر نداره

----------


## W I N G S

> Puzzle-signed.apk -  257 KB
> 
> البته تستش نکردم چون گوشیم فلش پلیر نداره


دوست عزیز من نصبش کردم اما پس از اجرا یه صفحه خالی و مشکی میاد که چیزی توش نیست
در ضمن آیکن برنامه نصب شده هم اون آیکنهایی که فرستادم نبود یه آیکن اندروید هستش
----------
فکر کنم این برنامه ای که ساختین روی اندروید 2.3 به پایین جواب بده
اما همونطور که در بالا اشاره کردم من برای اندروید 4 به بالا دنبالشم
چون اندروید گوشی من 4.0.3 هستش
---------
توی عکسی که در آموزش اون سایت بود اندروید 4.0 را هم شامل میشد
آیا شما موقعه ساختن این برنامه ،  اندروید 4.0 را  تیک زدید ؟

-----------
شاید SDK شما مناسب 4 نیست ؟

به نظرتون میشه کاری کرد ؟ تا برای 4 قابل اجرا باشه ؟

----------


## Nevercom

عرض کردم، برای اینکه فایل SWF روی هر نسخه ای از اندروید اجرا بشه، *حتماً و حتماً فلش پلیر باید نصب شده باشه*. گوشی من 2.3 هست و فلش پلیر هم نداره.
مشکل از SDK یا تنظیمات دیگه نیست، اگر اندروید 4 (و یا هر نسخه ی دیگه) فلش رو پشتیبانی نکنه و نشه فلش پلیر رو نصب کرد، هیچ راهی نیست که بشه فایل SWF رو اجرا کرد.

این توضیحات هم لینکش رو قرار دادی فقط واسه اینه که اون فایل فلش به شکل یه برنامه ی اندرویدی در بیاد وگرنه هیچ کار خاص دیگه ای نمیکنه.

----------


## W I N G S

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

قبلش یه توضیحی در رابطه با استفاده ی  فایل های swf در درون apk میدم تا قضیه روشن تر بشه .
ما به دو روش میتونیم این فایلها ( swf ) را بسازیم تا در یک apk جا بدیدم .

1- فایلهای swf را با قوانین و کدها و خلاصه در بستر Adobe AIR درست کنیم در یک فایل apk بسته بندی کنیم
که اگه دوستان دقت کرده باشند اگه این swf ها رو از درون apk خارج کنیم به خودی خود روی دسکتاب کامپیوتر اجرا نخواند شد

2- فایلهای swf را مثل قدیم ها فقط با برنامه اصلی این قضیه یعنی همون بستر Adobe Flash بسازیم تا بعد اونو در یک apk بسته بندی کنیم
این نوع apk اگه باز بشه اون swf ازش خارج بشه ، خود اون swf روی دسکتاب کامپیوتر  قابل اجرا میباشد
------------
هدف من مدل دومه ، چون نمیخوام swfهایی که در گذشته داشتم را  باز نویسی کنم

=================
اولین مشکلی که باهاش روبرو میشیم اینکه آیا فلش روی گوشی نصب هست یا نه؟
خب ، همونطور که در بالا گفتم هر دوتا  یعنی هم Adobe AIR و هم Adobe Flash Player نصب هست و اون هم آخرین ورژنشون .
و گویای این مطلب اینکه شما میتونید swfهای که به صورت مدل دومی که گفتم ساختین را درگوشی همین جوری بدون داخل کردنشون در apk اجرا کنید
اما به واسطه ی برنامه های کمی مثل SWF Player - Flash ®FileViewer ویا در وبگردهایی مثل Dolphin Browser
پس این مشکل حل شد  :لبخند: 
-------
دومین مشکل و اصلی ترین سد این راه اینکه اندروید 4 به بالا دیگه Adobe Flash رو از ساختار اصلی خودش خارج کرده و HTML Viewer اون دیگه swf ها را نشون نمیده
پس وقتی یه فایل apk که در درونش swf ساخته شده (به روش دوم ) اجرا میشه اول میره سراغ HTML Viewer سیستم عامل
و چون اون نشون نمیده ، ما یه صفحه خالی میبینیم !  :خیلی عصبانی: 
=================
حالا سوال من از اساتید برنامه نویس این سایت اینه چطور میشه این سد رو شکست ؟
ودر نهایت به من دور شده از swfهام یاری رسوند  :گریه:

----------


## W I N G S

دوستان من یه سایت گیر آوردم که تونسته این سد را  بشکنه اما به ما که یاد نمیده چیکار کرده  :متفکر: 
http://www.vital-game.com

همین بازی اولشو  Mr Bean Solitaire  که 370 کیلو بایته دانلود کنید و نصب کنید
میبینید که کاملا در اندروید 4.0.3 به خوبی اجرا میشه (البته به شرط نصب بودن Adobe Flash Player در گوشی)
در گوشی من اجرا شد
-------------------------------------------------------------------------------------------
میشه با فناوری معکوس  :چشمک:  فهمید این سایت چطور تونسته این کار رو بکنه ؟
در ضمن اگه apk را باز کنید میبینید در پوشه ی assets فایلی هست به نام i.swf که اگه اونو به کامپیوتر انتقال بدید قابل اجرا خواهد بود
یعنی یه فایل swf کامل و مستقل که از قبل در Adobe Flash طراحی شده و بعدا در apk بسته بندی شده ((درست چیزی که من دنبالشم))
==================================================  ==================================
یه سایت هست که در این رابطه اطلاعاتی داده . آیا بدرد اندروید 4 میخوره ؟
http://swftoapk.blogspot.com
چون دیدم این سایت(( فیل تر )) کل مطلب رو پیست میکنم
Since long I have been struggling to convert .swf file to .apk file and the best part is I have the solution !!
Even I was searching around  the internet for the solution ,and the outcome was obvious none of the methods worked !!! And I believe there are no tools yet that convert .swf to .apk directly.

Most Important !! The phone should be flash player enabled for the apk to work or else just a white screen would appear if the phone isnt flash enabled.

So after so many trials and errors  I came out with a solution and it worked perfectly !!
Without any wasting any time lets get started !! 

Create an android project  eclipse and just include the code !

Here is code.


import android.app.Activity;
import android.os.Bundle;
import android.webkit.WebView;

public class MainActivity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
       
       
        String url ="file:///android_asset/Flash.swf";                           //Include your swf file here.
        WebView wv=(WebView) findViewById(R.id.web_engine);
        wv.getSettings().setPluginsEnabled(true);
        wv.loadUrl(url);       
    }
}



Thats it !!
Run the project !
Your APK is Ready ! Do comment !
Happy Coding !

----------


## Nevercom

من فلش پلیر نسخه 10.1 و 11.1 رو روی Emulator نصب کردم، یه امولیتور با API 14 (اندروید 4.0) و یکی هم API 10 (اندروید 2.3.3).
رو هیچکدوم این برنامه فایل فلش رو نشون نداد، و اون بازی ای که تو پست قبل گفتین هم همینطور، فایل فلش رو نشون نداد.

کدی که تو اون مثال نوشتم هم اینه:
public class MainActivity extends Activity {

    private WebView mWebView;

    @SuppressLint("SetJavaScriptEnabled")
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        mWebView = (WebView) findViewById(R.id.webView1);

        mWebView.getSettings().setJavaScriptEnabled(true);
        mWebView.getSettings().setPluginState(WebSettings.  PluginState.ON);
        mWebView.setScrollBarStyle(WebView.SCROLLBARS_OUTS  IDE_OVERLAY);
        mWebView.setBackgroundColor(Color.parseColor("#000  000"));

        mWebView.loadUrl("file:///android_asset/puzzle.swf");
    }

}
موضوع اینه که تکنولوژی فلش به درستی پشتیبانی نمیشه و در نسخه های جدید اندروید هم بطور رسمی فلش پلیر پشتیبانی نمیشه.
یعنی یه بازی فلش که قراره رو اندروید اجرا بشه، حداقل 50٪ باید احتمال بدید که برنامه اجرا نشه و باید فلش پلیر رو نصب کنن، و از اون تعداد که میرن نصب کنن هم تعداد زیادیش به مشکل بر می خورن.

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

----------


## W I N G S

دوست عزیز فرمایشات شما درست ، حالا میشه یه راه دیگه رو باهم امتحان کنیم(البته اگه امکاناتش رو دارین)
ببینید الان بازی Mr Bean Solitaire  در گوشی من اجرا میشه داخلش هم یه swf هست به نام i.swf
من نمیدونم سازنده ی بازیه mr bean solitaire چی کار کرده آیا سورسش را بسته ؟ یا ساینش کرده ؟ چون نمیشه با برنامه ی APK Edit v0.4e این بازی را باز کردتا فایل puzzle.swf خودمون را با تغییر نام جای بازی اون بزاریم و دوباره apk را ببندیم
حالا آیا شما برنامه یا ترفندی بلدین که این جابجایی را بدون داد خطا انجام بدین ؟
بعد فایل رو برام لطف کنید ارسال کنید تا من نصب کنم ببینم چی جواب میده
اصلا apk هایی که اینگونه بسته شدن قابل گشایش و تغییر هستن ؟
این آخرین راه  :گریه:

----------


## faridoddin

باسلام خدمت دوستان.
من خودم هیچی برنامه نویسی بلد نیستم. اگه ممکنه  یکی کمک کنه ممنون میشم.من یه نرم افزار فلش دارم که توی گوشی های نوکیا به  راحتی اجرا میشه اما توی اندروید با swf player که باز می کنم سفید نشون  میده و دیتاهاش رو لود نمیکنه.من چیکار باید بکنم؟آیا کسی میتونه اینو واسم  به apk تبدیل کنه؟ دو تا عکس از فایل های برنامه میذارم اگه کسی میتونه  فایلشو آپلود کنم.خداییش من گوشی اندروید خریدم فقط واسه همین برنامه.

اینم فایل های داخل پوشه quran_data

----------


## rezaeyan

سلام دوستان:
الکی دنبال اجرای فایل های swf بروی نسخه های جدید اندروید نباشد! چونکه دیگه پشتیبانی نمیشه.
html5 جایگزین فلش شده و شما باید فایل فلش رو به html5 تبدیل کنید.(من انجام دادم)
اما مشکل اینجاست که در تمامی مرورگرها هنوز پشتیبانی نمیشه و در گوشی به درستی انجام نمیشه.
کسی تونست کار جدیدتری انجام بده خبر بده....

----------

