PDA

View Full Version : برنامه نویسی اندروید



mh1376
سه شنبه 23 اردیبهشت 1393, 19:56 عصر
سلام یه سوالی ذهنم رو خیلی مشغول کرده اونم این هست که ایا میشه به طور کامل یک نرم افزار رو برپایه c++ نوشت و مشکلی هم بوجود نیاد؟

من از کیوت استفاده میکنم و برنامه ای نوشتم شبیه به یک کلاینت مثل تیم ویور هست ایا میتونم این کلاینت رو برای اندروید پورت کنم ؟

کامبیز اسدزاده
سه شنبه 23 اردیبهشت 1393, 21:21 عصر
سلام یه سوالی ذهنم رو خیلی مشغول کرده اونم این هست که ایا میشه به طور کامل یک نرم افزار رو برپایه C++‎ نوشت و مشکلی هم بوجود نیاد؟

من از کیوت استفاده میکنم و برنامه ای نوشتم شبیه به یک کلاینت مثل تیم ویور هست ایا میتونم این کلاینت رو برای اندروید پورت کنم ؟

سلامِ

هر چیزی رو توی C++ به صورت Native بنویسید میتونید کامپلیلش کنید روی پلتفرمی که لازمه. ولی باید به اینم توجه کنید که رابط کاربری رو بر اساس چه محیطی طراحی کردین مثلا QWidget هست یا QML و یا HTML و ... تنها تغییراتی که باید بدین و مد نظرتون باشه همین رابط گرافیکی هست البته اگه کلا روی Qt کارکرده باشید ! چون اگه نرم افزارتون تحت مثلا MFC یا Win32 یه همچین چیزایی باشه بعید میدونم بتونید کاری انجام بدین.

برای Android هم SDK هاش رو روی Qt مخصوص برای اندروید نصب میکنید و در نهایت کامپایل و تمام‌! خیلی چیز خاصی نداره.

حامد مصافی
سه شنبه 23 اردیبهشت 1393, 22:40 عصر
بسیاری از امکانات اندروید در کیوت قابل استفاده نیست. اما اگر برنامه شما الان‌ آماده هست پس نیازی به امکانات اندروید نیست. از همین رو جواب می‌تواند مثبت باشد. برای دریافت یک جواب دقیق‌تر می‌توانید اطلاعات بیشتری از پروژه خود ارائه فرمایید.

mh1376
چهارشنبه 24 اردیبهشت 1393, 00:17 صبح
الان پروژه روی qwidget هست و مثل ادم نوشته شده مثل کیوت قدیم و این qml اینا بهش اضافه نشده شبیه به نرم افزار یاهو مسنجر هست
native یعنی چی؟ من ndk رو دانلود کردم حدود 1.5 گیگ هست
یه برنامه دیگه هم میخوام بسازم یک دعا هست من چون فقط c++ و پایتون بلدم میتونم خروجی خوبی بگیرم یا نه ؟ از html هم شاید استفاده کنم برای پشتیبانی فونت و ...

mh1376
چهارشنبه 24 اردیبهشت 1393, 01:26 صبح
الان اومدم اندروید نصب کنم تو کیوت ادرس ndk sdk رو دادم کیت اد نمیکنه و میگه qt version archtucture x86 sem mips and missing
من الان روی 64 بیت هستم سیستم عامل زوبنتو xubuntu

حامد مصافی
چهارشنبه 24 اردیبهشت 1393, 12:20 عصر
sdk هم به مراه ndk باید نصب بشه

mh1376
جمعه 26 اردیبهشت 1393, 17:00 عصر
sdk هم به مراه ndk باید نصب بشه

الان تو کیوت ادرس جفتش رو دادم ولی کیت ادد نشده مشکل چیه؟

mh1376
جمعه 26 اردیبهشت 1393, 20:27 عصر
سوال دومم اینکه هر چی کامپایل میکنم تو کیوت کریتور اجرا میشه ولی تو یه پوشه دیگه اجرا نمیشه

کامبیز اسدزاده
جمعه 26 اردیبهشت 1393, 20:31 عصر
سوال دومم اینکه هر چی کامپایل میکنم تو کیوت کریتور اجرا میشه ولی تو یه پوشه دیگه اجرا نمیشه

در رابطه با این مشکلتون هم باید بگم که هرچی رفرنس تو پروژه استفاده کردین باید در کنار فایل exe برنامتون قرار بدین مثلا QWidget باید فایل QWidget.dll رو از داخل کامپایلر موجود در Qt Creator کپی و انتقال بدین به داخل پوشه برنامتون تا بتونید خارج از Qt Creator اجراش کنید.
وقتی برناتون رو اجرا میکنید 100% پیغامهایی که میده حاویه نام فایل ای هستش که بهش نیاز داره همون فایل رو دقیقا کپی کنید جایی که برنامتون هست مشکل حل خواهد شد.

mh1376
جمعه 26 اردیبهشت 1393, 20:34 عصر
در رابطه با این مشکلتون هم باید بگم که هرچی رفرنس تو پروژه استفاده کردین باید در کنار فایل exe برنامتون قرار بدین مثلا QWidget باید فایل QWidget.dll رو از داخل کامپایلر موجود در Qt Creator کپی و انتقال بدین به داخل پوشه برنامتون تا بتونید خارج از Qt Creator اجراش کنید.
وقتی برناتون رو اجرا میکنید 100% پیغامهایی که میده حاویه نام فایل ای هستش که بهش نیاز داره همون فایل رو دقیقا کپی کنید جایی که برنامتون هست مشکل حل خواهد شد.

اگه بخوام یه فایل فقط باشه مثلا یه فایل اجرایی البته توی لینوکس یا ویندوز باید چه کرد؟
لطفا اندروید هم جواب بدید

کامبیز اسدزاده
جمعه 26 اردیبهشت 1393, 21:22 عصر
اگه بخوام یه فایل فقط باشه مثلا یه فایل اجرایی البته توی لینوکس یا ویندوز باید چه کرد؟
لطفا اندروید هم جواب بدید

برای اینکه برنامتون همش یک فایل exe باشه و وابستگی به فایل های خارجی مثل همون dll های مورد نیاز نداشته باشه در اینصورت باید خود Qt رو به صورت Static کامپایل کنید.
به صورت زیر : http://qt-project.org/wiki/How-to-build-a-static-Qt-for-Windows-MinGW
طبق همین مثال تغییرات به صورت زیر خواهد بود :



Dynamic + Release: 1 MB
Dynamic + Debug: 33 MB
Static + Release: 16 MB
Static + Debug: 297 MB


در رابطه با اندروید هم لینک ای زیر رو بررسی کنید :

http://qt-project.org/doc/qt-5/androidgs.html
http://qt-project.org/wiki/Qt5ForAndroidBuilding

ziduat
شنبه 28 تیر 1393, 18:28 عصر
با سلام
اولا ببخشید که این تاپیک رو آوردم بالا! توی سرچام به اینجا رسیدم
من میخواستم یه برنامه با QT بنویسم که خروجی اش روی گوشی های اندورید هم قابل اجرا باشه! برای اینکار هم لازمه که تمام چیزهایی که توی لینک بالا گفته شده رو نصب کرد؟ چون من نمیخوام با اندروید برنامه بنویسم فقط میخوام خروجیش روی گوشی اجرا بشه!

ممنون

کامبیز اسدزاده
شنبه 28 تیر 1393, 18:58 عصر
با سلام
اولا ببخشید که این تاپیک رو آوردم بالا! توی سرچام به اینجا رسیدم
من میخواستم یه برنامه با QT بنویسم که خروجی اش روی گوشی های اندورید هم قابل اجرا باشه! برای اینکار هم لازمه که تمام چیزهایی که توی لینک بالا گفته شده رو نصب کرد؟ چون من نمیخوام با اندروید برنامه بنویسم فقط میخوام خروجیش روی گوشی اجرا بشه!

ممنون

سلام

بله برای اینکه خروجی بگیرید باید حتما از NDK و SDK , JDKدر داخل کیوت استفاده کنید.
طبق لینک زیر : http://qt-project.org/doc/qt-5/androidgs.html

ziduat
شنبه 28 تیر 1393, 23:17 عصر
ممنون
یه سوال دیگه: برای اتصال آن به اندروید دیگه نیازی به نوشتن کد java نیست؟؟ با ++C میشه همچین کاری کرد؟؟!

احسان!
یک شنبه 29 تیر 1393, 04:07 صبح
ممنون
یه سوال دیگه: برای اتصال آن به اندروید دیگه نیازی به نوشتن کد java نیست؟؟ با ++C میشه همچین کاری کرد؟؟!
نه لازم نیست.

tux-world
دوشنبه 06 مرداد 1393, 09:38 صبح
یه سوال. این رابط گرافیکی رو برای اندروید تو کیوت باید از QML استفاده کرد؟ QML خودش رابطی برای طراحی داره مثل Eclipse یا intlliJ ؟؟؟

احسان!
دوشنبه 06 مرداد 1393, 09:57 صبح
یه سوال. این رابط گرافیکی رو برای اندروید تو کیوت باید از QML استفاده کرد؟ QML خودش رابطی برای طراحی داره مثل Eclipse یا intlliJ ؟؟؟ نه نیازی به استفاده از QML نیست.

کامبیز اسدزاده
دوشنبه 06 مرداد 1393, 10:35 صبح
یه سوال. این رابط گرافیکی رو برای اندروید تو کیوت باید از QML استفاده کرد؟ QML خودش رابطی برای طراحی داره مثل Eclipse یا intlliJ ؟؟؟

برای طراحی های زیبا و خاص از QML استفاده میکنند و محیط سازنده و طراحی این فناوری هم خود Qt Creator هستش که فایل های qml هم مربوط به همین کار تعریف میشوند.

tux-world
دوشنبه 06 مرداد 1393, 21:10 عصر
امکانش هست نمونه ای بزارید که ببینم؟ منظورم اینه که برای محیط دسکتاپ طراحی اینترفیس بشه. برای اسمارت فون ها دیدم مثالهایی که گذاشته بودن رو ولی برای دیزاین اینترفیس دستکتاپ نه

omid_kma
سه شنبه 07 مرداد 1393, 17:53 عصر
امکانش هست نمونه ای بزارید که ببینم؟ منظورم اینه که برای محیط دسکتاپ طراحی اینترفیس بشه. برای اسمارت فون ها دیدم مثالهایی که گذاشته بودن رو ولی برای دیزاین اینترفیس دستکتاپ نه
ویدجت هایی که در ++Qt\c هست در qml هم قابل دسترسیه
همین طور تمام کلاس های API qml سی پلاس پلاس دارن پس در ++C هم قابل دسترسین
پس هر چیزی که در qml میشه طراحی کرد با ++C هم میشه و برعکس ولی خب qml خیلی راحت تره در عوض performance کمتری داره که خیلی وقت ها مهم نیست

kitten
سه شنبه 07 مرداد 1393, 22:55 عصر
دوست عزیز یه پیشنهاد دوستانه
مگر در حالات خاصی مثل این که بخواهید کدتون را برای ویندوز موبایل و ios هم کامپایل کنید یا مثلا یه کاری بکنید که تو جاوا سخت باشه مثل انیمیشن یا چیزهای دیگر بهتون پیشنهاد می کنم که از کیوت واسه برنامه نویسی آندروید استفاده نکنید
دلایل:
حجم برنامه تولیدی بالا می رود که موجب نارضایتی کاربران عادی است
سرعت برنامه کاهش می یابد به طوری که در گوشیهای با پردازنده ضعیف سرعت بسیار کاهش می یابد
تولید برنامه با نمای native آندروید با qml کمی سخت است چون مثلا actionbar و این جور چیزا را در qml باید خودتون پیاده سازی کنید.
ولی مزایایی همجون
قابلیت کامپایل برای مک و ios و windows mobile از مزایای کیوت هستش که در صورتی که بخواهید برنامه تون در همه پلتفرم ها اجرا بشه خیلی خوبه و کار را راحت می کند مخصوصا با وجود تکنولوژیهای مثل jni و ..... میتونید از زبان های جاوا و objective c هم استفاده کنید
و البته به نظرم برنامه نویسی با کیوت راحتتر از java و objective c هستش

شرایطتون را در نظر بگیرید و تصمیم گیری کنید.

tux-world
چهارشنبه 08 مرداد 1393, 09:57 صبح
برای اینکه برنامتون همش یک فایل exe باشه و وابستگی به فایل های خارجی مثل همون dll های مورد نیاز نداشته باشه در اینصورت باید خود Qt رو به صورت Static کامپایل کنید.

یه سوال. درواقع ما کیوت رو از روی سورس کامپایل که میکنیم کلیه پیش نیازهایی که هستن دیگه نیاز نیست به صورت فایل جدا کنار فایل اجراییمون باشه درسته؟ خوب الان وقتی که کیوت رو تو لینوکس از سورس کامپایل کردیم برای اینکه خروجی ویندوز هم داشته باشیم پس تو ویندوز هم باید کیوت رو کامپایل کنیم.
موقعی که کامپایل و اجرایی میشه فقط اون چیزهایی که ما استفاده کردیم داخل فایل اجرایی میاد یا نه همشون لحاظ میشه؟ از لحاظ پرفورمنس چیزی تغییر نمیکنه؟

البته به نظرم با اضافه کردن:

CONFIG += static
نیازی به کامپایل به صورت استاتیک نباشه نه؟

کامبیز اسدزاده
چهارشنبه 08 مرداد 1393, 12:28 عصر
یه سوال. درواقع ما کیوت رو از روی سورس کامپایل که میکنیم کلیه پیش نیازهایی که هستن دیگه نیاز نیست به صورت فایل جدا کنار فایل اجراییمون باشه درسته؟ خوب الان وقتی که کیوت رو تو لینوکس از سورس کامپایل کردیم برای اینکه خروجی ویندوز هم داشته باشیم پس تو ویندوز هم باید کیوت رو کامپایل کنیم.
موقعی که کامپایل و اجرایی میشه فقط اون چیزهایی که ما استفاده کردیم داخل فایل اجرایی میاد یا نه همشون لحاظ میشه؟ از لحاظ پرفورمنس چیزی تغییر نمیکنه؟

البته به نظرم با اضافه کردن:

CONFIG += static
نیازی به کامپایل به صورت استاتیک نباشه نه؟

توضیحات قرار داده شد : http://barnamenevis.org/showthread.php?462833-%D9%85%D9%82%D8%A7%DB%8C%D8%B3%D9%87-%DA%A9%D8%A7%D9%85%D9%BE%D8%A7%DB%8C%D9%84-Static-%D9%88-Dynamic

و

http://barnamenevis.org/showthread.php?436304-%D9%85%D8%B9%D8%B1%D9%81%DB%8C-%D9%88-%D8%A2%D9%85%D9%88%D8%B2%D8%B4-C-%E2%80%8E%E2%80%8E-Qt-%D8%A8%D9%87-%D8%B5%D9%88%D8%B1%D8%AA-%DA%AF%D8%A7%D9%85-%D8%A8%D9%87-%DA%AF%D8%A7%D9%85&p=2072267#post2072267

samanbank
یک شنبه 12 مرداد 1393, 13:36 عصر
برای انردوید و ای او اس فقط باید از qml استفاده کرد فورم که بزارید صفحه لگ داره چطور بگم یک اسپلش اسکرین درست کنید با 10 تا عکس ه هی کمرنگ بشه بعد تنظیم کنید در هر 2 ثانیه نشون بده بره عکس بعدی بعد میبینید عکس پر پر میزنه ولی همینو با qml میزاری درست میشه