مشخصات مقاله
-
4250
-
0.0
-
10663
-
0
-
0
آموزش ایجاد کتابخانه ویژه ی برنامه های اندروید
این فصل به نحوه و چگونگی ایجاد و استفاده از پروژه های کتابخانه در اندروید می پردازد.
فهرست محتوا
1. کتابخانه های اندروید و جاوا
2. استفاده از فایل های JAR (کتابخانه های جاوا) در اندروید
- نحوه ی استفاده از فایل های JAR
- بهره گیری از ابزار توسعه و برنامه سازی اندروید(ADT) Eclipse
- استفاده از Android Studio
- محدودیت های استفاده از کتابخانه های جاوا
3. ماژول های کتابخانه ی سفارشی اندروید (Custom Android library modules )
- بکارگیری ماژول های کتابخانه سفارشی اندروید
- اولویت در انتخاب منابع
4. ایجاد ماژول های کتابخانه ی سفارشی در محیط Android Studio
5.ایجاد ماژول های کتابخانه ی سفارشی
- تعریف ماژول های کتابخانه در افزونه ی ابزار توسعه و برنامه سازی اندروید ADT Eclipse
6. پروژه ی کتابخانه ی اندروید (Android library project)
7. کتابخانه های پشتیبانی ارائه شده توسط Google
- گستره ی کتابخانه های پشتیبانی
- ورژن های مختلف کتابخانه ی پشتیبانی
- استفاده از کتابخانه های پشتیبانی در محیط Eclipse
8.تمرین ایجاد ماژول کتابخانه
- هدف
- RSS - Really Simple Syndication (هم نشری براستی ساده)
- استفاده از Android Studio : ایجاد ماژول کتابخانه
- بهره گیری از Eclipse ADT : ایجاد ماژول کتابخانه
- ایجاد کلاس کلاس نمونه (model class)
- ایجاد نمونه (instances)
- Android Studio : تعریف dependency (وابستگی) در پروژه ی کتابخانه
- Eclipse ADT : تعریف dependency (وابستگی) در پروژه ی کتابخانه
- استفاده از پروژه ی کتابخانه جهت بروز رسانی DetailFragment ها
کتابخانه های اندروید و جاوا
پروژه های اندروید این اجازه را دارند که از کدهای موجود در فایل های JAR (کتابخانه های جاوا) استفاده کنند. همچنین این امکان وجود دارد که که ماژول های کتابخانه ای ایجاد کرد که بتوان از آن ها به عنوان (dependency) وابستگی ها در پروژه های اندروید بهره گرفت. ماژول های نام برده به برنامه نویس این امکان را می دهد که متن برنامه (source code) و منابع اندروید را که قابلیت مشترک بودن بین چندین پروژه ی دیگر اندروید را دارند ذخیره کند.
استفاده از فایل های JAR (کتابخانه های جاوا) در اندروید
نحوه ی استفاده از فایل های JAR
به منظور استفاده از کتابخانه های جاوا (JAR file) داخل پروژه های اندروید می توان فایل های JAR (کتابخانه ی جاوا ) را داخل پوشه ی به نام libs در برنامه ی کاربردی خود بکار برد. بسته به محیط برنامه نویسی (IDE) که از آن بهره می گیرید ممکن است فایل های کتابخانه ی جاوا خودکار در دسترس قرار گیرند، در غیر این صورت باید یک مرحله ی اضافی را نیز پشت سر بگذارید.
بهره گیری از ابزار توسعه و برنامه سازی اندروید(ADT) Eclipse
تجهیزات یا افزونه های ADT در Eclipse به صورت خودکار فایل JAR را به classpath پروژه اضافه می کند. حین فرایند آماده سازی و گسترش (deployment)، ابزار و تجهیزات اندروید فایل های.Class را در فایل .dex اندروید کامپایل (ترجمه) می کند که دربردارنده ی byte-code های اندروید است. این نوع ضمیه کردن خودکار فایل های JAR به classpath ملزم این است که پوشه ی libs را فراخونی کنید.
استفاده از Android Studio
در Android studio باید طبق دستور زیر اقدام کنید.
روی فایل JAR در پوشه ی libs راست کلیک کرده و گزینه ی Add as library را انتخاب کنید.
سپس بررسی کنید آیا ورودی (entry) جدیدی به نام compile files('libs/YOURJAR.jar') در فایل build.gradle خود دارید یا خیر.
برای کسب اطمینان از اینکه تغییرات لازمه اعمال شده، clean build را در محیط Eclipse اجرا کنید.
محدودیت های استفاده از کتابخانه های جاوا
اگر می خواهید از کتابخانه ها استفاده کنید، باید توجه داشته باشید که این کتابخانه ها حتماً از API های موجود در اندروید بهره بگیرند. به عنوان مثال کتابخانه های اندروید، کتابخانه های رابط کاربری javax.swing و java.awt را ندارند زیرا که اندروید مجموعه ابزار خود را مختص رابط کاربری داشته و مورد استفاده قرار می دهد.
پروژه های کتابخانه ای قابلیت کامپایل / ترجمه شدن به اپلیکیشن های اندروید و راه اندازی بدون دیگر پروژه ای که از آن استفاده می کند را ندارند.
استفاده از پروژه های کتابخانه ای به شما اجازه می دهد کد برنامه ی خود را سازمان دهی کنید. البته کتابخانه های منبع آزاد (open source) کارامد دیگری نیز هستند که می توان از آن ها برای اندروید استفاده کرد. بنابراین آشنایی با کتابخانه های اندروید برای هر برنامه نویسی لازم و ضروری است.
ماژول های کتابخانه ی سفارشی اندروید (Custom Android library modules)
بکارگیری ماژول های کتابخانه سفارشی اندروید
چنانچه پروژه ی برنامه ی کاربردی اندروید از ماژول کتابخانه (اندروید) بهره گرفت، در آن صورت ابزار توسعه و برنامه سازی اندروید (ADT) کدها و منابع لازمه را از پروژه ی کتابخانه، داخل build result پروژه ی اندروید می گنجاند. این امر بدین معنا است که مولفه ها، کدها و منابع پروژه ی کتابخانه ی ترجمه شده و در فایل .apk اپلیکیشن کامپایل شده بسته بندی (package) می شوند. از این رو می توان نتیجه گرفت که ماژول کتابخانه ی می تواند یک مصنوع زمان کامپایل (compile-time) تلقی گردد. ماژول کتابخانه ی اندروید همچنین می تواند حاوی کلاس های جاوا، مولفه های اندروید و منابع آن باشد. تنها آیتمی که از آن پشتیبانی نمی شود asset ها هستند.
جهت ایجاد پروژه ی کتابخانه، گزینه ی Mark this project as library را در برنامه ی راهنمای تولید پروژه های اندروید (Android project generation wizard) با پرچم علامت دار کنید.
پروژه ی کتابخانه باید تمامی مولفه های خود از جمله activities، service را در فایل AndroidManifest.xml معرفی کند. برنامه ی که کتابخانه را بکار می گیرد نیز باید کلیه ی مولفه های استفاده شده را در فایل AndroidManifest.xml تعریف می کند.
اولویت در انتخاب منابع
ADT منابع یک پروژه ی کتابخانه را با منابع پروژه ی اپلیکیشن ادغام می کند. در صورتی که شناسه (ID) منبع چندین بار تعریف شده باشد، ابزار منابع مورد نیاز را از برنامه انتخاب می کنند، یا کتابخانه ی با بالاترین اولویت را انتخاب کرده و دیگر منابع را دور می اندازد.
ایجاد ماژول های کتابخانه ی سفارشی در محیط Android Studio
به منظور ایجاد یک ماژول جدید داخل محیط اندروید استودیو، ابتدا گزینه ی File → New Module سپس Android Library را انتخاب کنید.
ایجاد ماژول های کتابخانه ی سفارشی
تعریف ماژول های کتابخانه در افزونه ی ابزار توسعه و برنامه سازی اندروید ADT Eclipse
برای استفاده از چنین کتابخانه ای، پروژه ی تولید شده را انتخاب کنید، سپس روی آن راست کلیک کرده و گزینه ی Properties را انتخاب کنید. حال روی تب Android، پروژه ی کتابخانه را به آن اضافه کنید.
در صورت تعریف کامپوننت (مولفه)، برای مثال activity ها در پروژه ی اندروید، باید این مولفه ها را در برنامه ی اندرویدی که از آن استفاده می کند دوباره تعریف کنید. اگر می خواهید تمامی کامپوننت ها را مستقیم از پروژه ی کتابخانه به برنامه ی خود اضافه کنید، در آن صورت باید manifestmerger.enabled=true را به فایل project.properties پروژه ی اپلیکیشن ضمیمه کنید.
پروژه ی کتابخانه ی اندروید (Android library project)
تیم توسعه دهندگان و برنامه نویسان سامانه ی اندروید قالب توزیع باینری (binary distribution) اندروید که به Android ARchive(AAR) نیز مصطلح می باشد را برای اولین معرفی کردند. مجموعه bundle
فرمت بالا در حال حاضر تنها به طور مستقیم توسط محیط برنامه نویسی Eclipse پشتیبانی می شود. با Eclipse می توان از فایل های AAR استفاده کرد. برای این منظور می توان یا فایل های مذکور را به پروژه ی کتابخانه ی اندروید (Android Library Project) تبدیل کرد و یا از افزونه (پلاگین) Android Maven برای ساخت (build) بهره گرفت. پکیج کتابخانه پشتیبانی اندروید (Android Support Library package) دربردارنده ی مجموعه برنامه ها و کتابخانه ی متعددی است که از ویژه گی های جدید یا خصوصیات ویرایش های پیشرفته تر اندروید در نسخه های قدیمی تر این سیستم عامل پشتیبانی می کند. در وهله ی اول باید کتابخانه های مورد نیاز را به وسیله ی Android SDK manager دانلود کنید. فایل JAR کتابخانه های پشتیبانی را از پوشه ی آن به فولدر libs در پروژه ی اندروید کپی کنید.
پروژه ی کتابخانه ی که ما درنظر گرفته ایم مولفه های لازمه ی اندروید را ارائه نمی دهد، بلکه یک مدل داده ای و متد برای دست آوردن تعداد نمونه ها در اختیار ما قرار می دهد. کتابخانه ی مزبور همچنین امکان دسترسی به داده های RSS را فراهم می کند. سند RSS در واقع یک فایل XML هست که با استفاده از آن می توان اخبار و ورودی های یک وبلاگ را منتشر کرد. قالب فایل XML را مشخصات RSS تعیین می کنند.
RSS سرنام Really Simple Syndication می باشد. برای Android Studio هر کتابخانه خود یک ماژول محسوب می شود. جهت ایجاد یک ماژول کتابخانه ی جدید در محیط اندروید استودیو، گزینه ی File → New Module and select Android Library را انتخاب کنید.
Eclipse ADT یک ماژول کتابخانه از طریق پروژه ایجاد می کند که از خصوصیت یا ویژگی جدید برخوردار است. ابتدا یک پروژه ی جدید اندروید به نام com.example.android.rssfeedlibrary بسازید. در این تمرین نیازی به ساخت activity نیست. جهت کسب اطمینان از اینکه پروژه ی مورد نظر به عنوان یک پروژه ی کتابخانه پیکربندی و تنظیم می شود، روی پروژه ی اندروید راست کلیک کرده و گزینه ی Properties را انتخاب کنید. مطمئن شوید علامت (پرچم) is Library انتخاب شده. یک کلاس RssItem ایجاد کنید. این کلاس قادر است داده ها و اطلاعات ورودی RSS را ذخیره سازد. getter و setter، سازنده (constructor) و تابع toString () را ایجاد کنید. نتیجه ی آن باید مشابه کلاس زیر باشد. یک کلاس جدید به نام RssFeedProvider با متد ایستا (static) ایجاد کرده تا فهرستی از اشیا RssItem را بازگرداند. TODO ها را رفع کرده تا نمونه هایی از کلاس RssItem ایجاد شود، سپس آن را به فهرست اضافه کنید. این متد در حال حاضر تنها داده های آزمایشی (test data) را باز می گرداند. جهت استفاده از کتابخانه، لازم است آن را به عنوان یک dependency به پروژه ی خود اضافه کنید. برای این منظور طبق دستور زیر عمل کنید. File → Project Structure → Module → Dependencies
در پروژه ی اپلیکیشن خود، با مراجعه به بخش project properties می توان از امکان استفاده از پروژه ی کتابخانه بهره گرفت. برای این منظور روی پروژه ی مربوطه راست کلیک کرده و گزینه ی Properties را از فهرست زمینه (context menu) انتخاب کنید. متد ایستای RssFeedProvider را به منظور دریافت فهرستی از اشیا RssItem و جایگزین کردن عدد مورد نظر به جای زمان جاری سیستم در DetailFragment بکار ببرید.
AAR (Android Application Record) در حقیقت مشابه فایل JAR است با این تفاوت که علاوه بر byte-code های کامپایل شده، می تواند دربردارنده ی منابع باشد. این امر امکان گنجاندن فایل AAR را در پروسه ی ساخت (build) اپلیکیشن اندروید مشابه یک فایل JAR فراهم می آورد.
توجه:
نکته:
کتابخانه های پشتیبانی ارائه شده توسط GoogleScope / گستره ی کتابخانه های پشتیبانی
ورژن های مختلف کتابخانه ی پشتیبانی
جدول 1. نسخه های مختلف کتابخانه های پشتیبانی
استفاده از کتابخانه های پشتیبانی در محیط Eclipse

تمرین ایجاد ماژول کتابخانههدف
RSS - Really Simple Syndication (همنشری براستی ساده)
یک فایل RSS به طور معمول توسط سرویس دهنده ی وب عرضه شده و در مرحله ی بعد توسط سرویس گیرنده ها و مخطبان RSS خوانده می شود. این سرویس گیرنده های RSS فایل را تجزیه (parse) کرده و نمایش می دهند.
استفاده از Android Studio : ایجاد ماژول کتابخانه
از اسم com.example.android.rssfeedlibrary به عنوان اسم ماژول استفاده کنید.


بهره گیری از Eclipse ADT : ایجاد ماژول کتابخانه
در صفحه ی دوم ویزارد گزینه ی است که انتخاب می کند پروژه ی جدید، یک پروژه ی کتابخانه باشد.


ایجاد کلاس کلاس نمونه (model class)
package com.example.android.rssfeedlibrary;
public class RssItem {
private String pubDate;
private String description;
private String link;
private String title;
public RssItem() {
}
public RssItem(String title، String link) {
this.title = title;
this.link = link;
}
public String getPubDate() {
return pubDate;
}
public void setPubDate(String pubDate) {
this.pubDate = pubDate;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public String getLink() {
return link;
}
public void setLink(String link) {
this.link = link;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
@Override
public String toString() {
return "RssItem [title=" + title + "]";
}
}
ایجاد نمونه ها (instances)
package com.example.android.rssfeedlibrary;
import java.util.ArrayList;
import java.util.List;
public class RssFeedProvider {
// Helper method to get a list
// of RssItems
public static List
Android Studio : تعریف dependency (وابستگی) در پروژه ی کتابخانه

Eclipse ADT : تعریف dependency (وابستگی) در پروژه ی کتابخانه
در مرحله ی بعد درایه ی Android را در محاوره (dialog) انتخاب کنید. دکمه ی Add... را در بخش Library بکاربرده و یک ارجاع (reference) به پروژه ی کتابخانه ی خود اضافه نمایید.

استفاده از پروژه ی کتابخانه جهت بروز رسانی DetailFragment ها
برای ارسال داده های جدید، کلاس MyListFragment را اصلاح کنید.
public void updateDetail() {
List