یوشا آل ایوب

دست نوشته ها و تجربیات شخصی

یوشا آل ایوب

دست نوشته ها و تجربیات شخصی

دکتر مصطفی چمران: می گویند تقوا از تخصص لازمتر است، آنرا می پذیرم، اما می گویم: آنکس که تخصص ندارد و کاری را می پذیرد، بی تقواست!

تبلیغات
Blog.ir بلاگ، رسانه متخصصین و اهل قلم، استفاده آسان از امکانات وبلاگ نویسی حرفه‌ای، در محیطی نوین، امن و پایدار bayanbox.ir صندوق بیان - تجربه‌ای متفاوت در نشر و نگهداری فایل‌ها، ۳ گیگا بایت فضای پیشرفته رایگان Bayan.ir - بیان، پیشرو در فناوری‌های فضای مجازی ایران

۶ مطلب با کلمه‌ی کلیدی «اکلیپس» ثبت شده است

 


CLASSPATH: یک متغیر در Environment variables و حاوی کتابخانه و dependency هایی هستش که هنگام Run-time و Compile-time مورد استفاده برنامه های جاوا قرار میگیره.

این متغیر برای استفاده System ClassLoader ماشین Java طراحی شده و حاوی کلاسهای کامپایل شده bytecode(در Java با پسوند class یا JAr) و کلاسهای کامپایل شده nativecode(در C با پسوند o. یا obj.) هستش. درواقع CLASSPATH بخشی از پکیج پلتفرم Java هستش و به برنامه java یا javac اعلام میکنه که کلاسهای کامپایل شده در کجا قرار دارن.

بصورت پیشفرض، محل فیزیکی CLASSPATH به پوشه "جاری پروژه" و پوشه lib در JDK/JRE نصب شده اشاره میکنه. اما اگر بخوایید میتونید این مسیر رو تغییر بدید.

نکته: با اضافه کردن کتابخانه به محل فیزیکی CLASSPATH، کتابخانه مورد نظر در تمام پروژه ها (system-wide) در دسترس قرار میگیرن، لیکن بصورت Relative link.

توجه: هرگز بصورت دستی مسیرهای jre/lib و jre/lib/ext رو داخل متغیر CLASSPATH اضافه نکنید، این مسیرها توسط ماشین جاوا بصورت خودکار پیمایش خواهند شد.

نکته: مقدار متغیر CLASSPATH میتونه توسط پارامتر -cp در برنامه java و javac یا پراپرتی Class-Path در فایل manifest.mf تغییر پیدا کنه. اما در نهایت پراپرتی Class-Path نسبت به متغیر CLASSPATH و پارامتر -cp اولویت داره! یعنی Class-Path property > CLASSPATH > -cp

نکته 2: در صورت وجود یک کتابخانه تکراری در همه مسیرهای موجود در متغیر CLASSPATH، همیشه اولین مسیر انتخاب خواهد شد.

نکته 3: تنظیمات متغیر CLASSPATH در برنامه IntelliJ IDEA در مسیر File -> Project structure -> Global libraries قرار داره و در برنامه Eclipse در مسیر Preferences -> [Java/C] -> Build path -> Classpath قرار داره.

 

 تشریح ClassNotFoundException و NoClassDefFoundError:

- مشکل ClassNotFoundException: از نوع Exception هستش و زمانی پرتاب میشه که ماشین جاوا بصورت Dynamic سعی در load کردن کلاس موردنظر حین Run-time از مسیر CLASSPATH کنه اما نتونه پیداش کنه.

- مشکل NoClassDefFoundError: از نوع Error هستش و زمانی بوجود میاد که کلاس موردنظر در مسیر CLASSPATH حین Compile-time وجود داره اما حین Run-time وجود نداره.

 

 

Build path: مسیری هست که برای تولید/compile پروژه طراحی شده، حاوی سورس ها و کتابخانه های پروژه هستش، بخشی از workspace ویرایشگر هستش، به ویرایشگر/IDE اعلام میکنه که فایلهای سورس پروژه در کجا قرار دارن... این مسیر مخصوص ویرایشگر/IDE هستش و در هر ویرایشگری به محل متفاوتی اشاره میکنه. (مثل VS, Eclipse, IntelliJ IDEA, Borland...)

 

 

Include path: مسیر هست که برای parse کردن فایلهای پروژه طراحی شده، میتونه حاوی فایلهای header، سورس یا inc باشه، کد completion ویرایشگر رو اعمال میکنه و کلاً برای پیدا کردن محتوا و منابع استفاده شده در پروژه هستش.
نکته: در Include path آدرس های path داده شده باید بصورت relative باشن تا بتونن توسط IDE پردازش بشن. (relative path = ./file.jpg, absoloute path = c:\www\root\test\file.jpg)

۰ نظر ۹۶/۰۶/۰۴
یوشا آل ایوب

در ادامه مقاله قبلیم که شماره سه "نکات و اصول مهم در برنامه نویسی Java/Android" بود، در این مقاله شماره چهار همین موضوع رو ارائه میدم... منتها بیشتر به رفع مشکلات و خطاها می پردازم.

 

1- برای رفع خطای OutOfMemory هنگام کار با تصاویر راه های زیر رو دنبال کنید:

- مقدار خاصیت largeHeap در فایل مانیفست رو true قرار بدید.

- سعی کنید از LRU cache manager استفاده کنید.
- تصاویر رو compress کنید.
- کدهارو بررسی کنید که memory leak رخ نداده باشه. (که 90% بخاطر بی توجهی به  activity life cycle رخ میده)
- برای سرویس ها و Toast ها از ApplicationContext استفاده کنید.
- دقت کنید که broadcast receiver ها رو Unreg کنید.
- همه Observer ها رو بعد از استفاده delete کنید.
- همه resource ها رو(مثل XML) بعد از استفاده destroy کنید.

مقاله کامل و قابل فهم از حافظه Stack و حافظه Heap.

 

2- مقدار صفت android:targetSdkVersion در تگ uses-sdk فایل AndroidManifest.xml، به دستگاه با نسخه مشابه SDK فرمان میده که سیستم compability رو غیرفعال کنه. بنابراین سرعت پردازش برنامه افزایش و کارایی برنامه بهبود پیدا می کنه.

۳ نظر ۹۵/۱۰/۲۳
یوشا آل ایوب

در ادامه مقاله قبلیم که شماره دو "نکات و اصول مهم در برنامه نویسی Java/Android" بود، در این مقاله شماره سه همین موضوع رو ارائه میدم...

 

1- با اضافه کردن خاصیت android:supportsRtl="true" در تگ application فایل AndroidManifiest.xml، مشکل راست به چپ صفحات preferences تون حل خواهد شد. (برای اندروید 4.2 به بعد)

 

2- آیا میدونید هیچ تفاوتی بین fill_parent و match_parent در خاصیت عناصر گرافیکی وجود نداره و هر دو دارای مقدار 1- هستند؟

این مسئله فقط یک تغییر نام جزیی بوده که از API 8 به بعد صورت گرفته و پیشنهاد شده که از match_parent استفاده بشه.

 

3- از انجایی که SharedPreference ها عملیات read/write برروی دیسک انجام میدن و معمولاً هم در متد OnCreate() یا OnResume() فراخوانی و load می شن، پس بهتره در thread غیر از UI اعمال بشن، تا برنامه رو دچار وقفه نکنن.

همچنین لازم نیست نگران تعدد عملیات باشید، چراکه SharedPreference یک شی Singleton هست و فقط یکبار بارگذاری میشه.

۱ نظر ۹۵/۰۸/۰۶
یوشا آل ایوب

این مقاله شامل آموزش نصب و راه اندازی Java + Android + Eclipse هستش.

که البته منظور از Android, پکیج Android SDK هستش، منظور از Eclipse, برنامه Eclipse IDE هستش و منظور از Java, پکیج Java SDK (همون JDK) هست.

 

فهرست مندرجات:

  • ابزارهای مورد نیاز
  • دانلود، نصب و تنظیم Java
  • دانلود، نصب و تنظیم Android SDK
  • دانلود، نصب و تنظیم Eclipse
  • دانلود، نصب و تنظیم ADT plugin
  • درباره Gradle ,ANT و Maven
  • نکات
  • رفع مشکلات

۱۱ نظر ۹۴/۰۶/۱۵
یوشا آل ایوب

 

اول اینکه امکان توسعه برنامه های اندروید در Eclipse به 3 روش میتونه انجام بگیره:

1- توسط Eclipse نسخه Eclipse for Android Developers

2- توسط پلاگین Andmore و نصبش در Eclipse نسخه Eclipse for Java Developers

3- توسط پلاگین ADT و نصبش در Eclipse نسخه Eclipse for Java Developers(عدم پشتیبانی از material design و Android 7)

 

دوم اینکه توسعه پلاگین ADT توسط گوگل متوقف شده، اما دیگر پلاگینهای توسعه اندروید توسط برنامه نویسای مجرب آزاد کماکان داره بروز میشه... (چون اصل کار توسط SDK انجام میشه و نه پلاگین)

 

مقایسه مهمترین ها: (Eclipse و AS، نه IntelliJ)
اکلیپس یک بستر و IDE غول پیکر و مستقل هست با بیشترین پلاگین در بین IDE ها.
اندروید استودیو یک IDE و کپی از برنامه IntelliJ هست.

۱ نظر ۹۴/۰۵/۱۵
یوشا آل ایوب

برای حل مشکلات ADB گوگل با درایور گوشی بصورت زیر عمل کنید:

  • ابتدا به مسیر نصب شده Android SDK برید.
  • بعد روی برنامه SDK Manager کلیک راست و گزینه Run as administrator رو انتخاب کنید تا برنامه باز بشه.
  • نکته: دلیل Run as administrator بخاطر مسایل دسترسی و نصب ابزارهای اندروید هستش.
  • حالا صبر می کنید تا لیست ابزارها load بشه... بعد روی گزینه Deselect all کلیک کنید.
  • سپس روی گزینه Extras کلیک کنید و ابزار Google USB Driver رو تیک بزنید. در آخر دکمه Install 1 package رو بزنید تا دانلود بشه.

۰ نظر ۹۳/۱۲/۰۳
یوشا آل ایوب