Persian Software Engineers – Telegram
Persian Software Engineers
1.9K subscribers
353 photos
14 videos
84 files
303 links
تجربیات شخصی یک مهندس نرم افزار در آلمان‌.
کانال یوتیوب:
https://www.youtube.com/@Dev_Germany
ادمین کانال :
@mohamad_germany
Download Telegram
Dalvik و Art:

Dalvik همون ماشین مجازی جاوا هست که توسط گوگل پیاده سازی شده، و اونجوری که خودشون اعلام کردن برای محیط های با حافظه پایین و محدودیت انرژی بهینه سازی شده.

که به ازای هر برنامه در حال اجرا یه نمونه از Dalvik لود میشه که چیز تعجب آوری نیست، چون همه runtime ها به منظور حفاظت و ایزوله سازی برنام ها از آسیب زدن به هم، مدیریت thread هایی که توسط خود dalvik ساخته میشن (نه thread ی که توسط بخش مدیریت حافظه و پردازش لینوکس ساخته میشه ) و...  همین مکانیزم رو پیاده سازی می کنن.

Art هم که مخفف Android runtime هستش و جایگزین dalvik شد. 

شاید بعد از چند ساعت برانداز کردن سورس Dalvik و ساختار ماژول هایی که تشکیلش می دادن متوجه میشدیم که واقعاً به زمان cpu های دو هسته ای و تک هسته ای تعلق داره :) یعنی GC و Multi Tasking ی که فراهم می کنه درخور پیشرفت های سخت افزاری حال حاضر نیست. در این نقطه چون هنوز بهتون نشون ندادم چجوری اندروید روی کامپیوتر خودتون build کنید، آزمون عملی ایرادهایی که عرض کردم قابل انجام نیست اما این یه مورد رو از من بپذیرین.

پس از اینجا به بعد تمرکز می کنیم روی ART.

هدف از معماری ART از ریشه، بهبود سرعت اجرای برنامه هاست. یعنی اگه دقت کنید 

به نظرم نقطه بزرگ تغییر در art نسبت به Dalvik قابلیت Ahead of time compilation بود. (انقدر گسترده بوده که گوگل مجبور شده از Refactor کردن کد فعلی Dalvik صرف نظر کنه و با هزینه زیاد Art رو تولید کنه).

یعنی ART در زمان نصب برنامه، کد رو به کد ماشین compile می کنه.

این به این معنیه که شما باید انتظار زمان نصب طولانی برای برنامه های با حجم بالا رو داشته باشید اما حس اینکه دارید از سرعت native استفاده می کنید استفاده از دیوایس رو لذت بخش می کنه. :)

خیلی ساده س اما برای اینکه یه دید دقیق تری داشته باشید من یه شکلی رو که از ویکیپدیا میذارم:
همونجور که ملاحظه می کنید در ابتدا یه ابزاری بنام dex2oat فایل apk رو می گیره فایل دیگه به نام elf رو خروجی میده (وارد جزئیات این فایل نمیشیم چون مطلب زیاد داره). و بعد هم ادامه کار با موتور اصلی ART... 
@androiddevelop
www.afgdeveloper.com
بعد از همه اینا میخوام یه نکته پایانی رو هم اضافه کنم و اون هم اینه که هر دو ماشین مجازی dvm و art از کتابخانه استاندارد C که به صورت اختصاصی برای اندروید طراحی شده به عنوان رابط با kernel استفاده می کنن. از جمله اینا همین مربع کوچک LibC تو لایه سبز رنگ کتابخانه ها رو مشاهده می کنید.

کتابخانه استاندارد C که در اندروید بهش Bionic گفته میشه دارای توابع mAlloc و ... هست که هر دو ماشین مجازی استفاده میکنن.

 و تا جایی که من میدونم تنها تفاوتش با C Standard library اصلی، بهینه سازی های انجام شده برای کار با cpu های با سرعت پایین تر هستش.
دوستان می تونین نظرات خودتون رو در مورد این مقاله در گروه اندرویدی ما
https://telegram.me/joinchat/B1f7ETv_ZoJDk2dr0ES0rQ
و همچنین رو در سایت شخصی آقای هاشمی با خودشون در میون بذارین :
http://afgdeveloper.com/fa/post/%D9%85%D8%B1%D9%88%D8%B1%DB%8C-%D8%A8%D8%B1-%D9%85%D8%B9%D9%85%D8%A7%D8%B1%DB%8C-%D8%A7%D9%86%D8%AF%D8%B1%D9%88%DB%8C%D8%AF-%D9%82%D8%B3%D9%85%D8%AA-%D8%AF%D9%88%D9%85
#روت #اندروید
سلام امروز آموزش تخصصی روت کردن انواع گوشی ها رو به صورت اختصاصی در کانال قرار می دیم .اگر از دوستانتون کسی هست که می خواد گوشیشو روت کنه حتما به کانال دعوتش کنین ممنون.
@androiddevelop
روت کردن به روش ساده @androiddevelop
#آموزش_روت_انواع_گوشی #اندروید #root #هادی_خدابنده_لو
همونطور که بهتون قول دادیم در این مقاله قصد داریم آموزش مختصری را برای روت گوشی های اندروید در اختیار شما دوستان قرار بدیم که با روت کردن گوشیتان در این مقاله لذت ببرید.
اما ابتدا سوالهای درذهن شما وجود دارد که ازاین قبیل است.
روت چیست؟ آیا روت مضر است؟ چرا باید روت کرد و چرا نباید روت کرد؟ گو شی روت شده بهتر است یا گوشی روت نشده؟ آیا روت کردن امنیت گوشی ما را پایین خواهد آورد؟
خوب اینها سوالاتی هست که جواب آنها رو به همراه آموزش تصویری روت کردن برای شما در پی دی اف زیر قرار دادیم .
*این آموزش توسط آقای هادی خدابنده لو و به طور اختصاصی توسط کانال @androiddevelop منتشر میشود.
👇👇👇👇👇
#اطلاعیه
سلام اولا دوستان جدیدی که به ما پیوستن یه سری از مطالب قبلی کانال در
@androidi_bot
موجود است . سوالای اندرویدی خودتونم می تونین تو گروه پرسش و پاسخ ما بپرسین.
لینک ورود:
https://telegram.me/joinchat/B1f7ETv_ZoJDk2dr0ES0rQ
توجه:برای عضویت حتما تلگرام خودتونو آپدیت کنین .
قوانین و نکات قابل توجه :📣📣
1-لطفا اول به هر مشکلی ک خوردین در گوگل سرچ کنین و اگر به نتیجه نرسیدین در گروه سوالتونو مطرح کنین و صبر کنین تا دوستان جواب بدن.
2-هر گونه تبلیغات در گروه ممنوع می باشد .
3-سوالاتو در قالب یک پیام و با هشتگ #سوال ارسال کنین تا هم باعث اسپم شدن گروه نشین هم سوال و جواب های درست خودشون یه منبع آموزنده و مفید برای بقیه اعضا می تونه باشه.جواب ها هم با هشتگ #پاسخ گذاشته بشه.
4-حتما برنامه نویسان محترم هم بیان تا بتونن به دوستان کمک کنن و این نکته رو در نظر داشته باشین که دوستان وظیفه پاسخ گویی ندارن و لطف می کنن پاسخ میدن !
انشا... گروه هم آموزنده و مفید باشه و همه دوستان قوانین رو رعایت کنند! موفق باشین .
📣📣توجه : قسمت 10 ام آموزش اندروید خانم مقاری امشب ساعت 11.
سلام مقاری هستم و باهم جلسه 10 آموزش اندروید رو در پیش خواهیم داشت
در این قسمت به ادامه ساخت پروژه خواهیم پرداخت.
در جلسه قبل تا اینجا پیش رفتیم که با ابزارهای editText و TextView و همچنین RadioButton آشنا شدیم.
از صفحه ثبت نامی که برای کاربر درست کردیم دوتا بخشش میمونه. انتخاب عکس که این رو میذارم برای جلسات اینده تر
دومیش هم یه تقویم فارسی برای انتخاب تاریخ تولد که جلسه آینده بهتون یاد خواهم داد.
این جلسه میخوام یکار خیلی جذاب را انجام بدهیم! ارسال پیامک! اگر یادتان باشد میخواستم برای لیست افرادی که ذخیره کردید یک صفحه ای داشته باشیم که بتوانیم لیست دوست هایی که ذخیره کردیم را ببینیم بعد یک نفر را از لیست انتخاب کرده و در یک صفحه دیگری بتوانید مشخصات آن دوستتان را ببینید. مثلا شماره اش را ببینید و بهش پیام بدهید!
خب بیاید اول همان صفحه ای که قرار هست دوستتان را نشان بدهد را بسازیم.
یک layout میسازم به اسم friend_info و یک Activity هم به آن میدم به اسم FriendInfoActivity.
فقط فراموش نکنید همانطور که گفتم activity را داخل manifest تعریف کنیدش.
من layout را از نوع RelativeLayout تعریف میکنم و ابزارهای زیر را گذاشتم داخل صفحم تا الان:
1)یک ImageView میگذارم که برای نشان دادن عکس دوست شما هست:
<ImageView android:layout_width="150dp"
android:layout_height="150dp"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:background="@android:color/holo_blue_bright"
/>
2)یک TextViwe برای نمایش اسم
<TextView android:layout_width="wrap_content" 
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_alignParentRight="true"
android:text="نام"
android:textSize="30sp"
android:layout_marginTop="20dp"
android:layout_marginRight="20dp"
فقط جهت یادآوری تگ ها میگم که الان من این TextView را هم به بالای صفحم هم به سمت راستش align کردم.
از طرفی با دادن margin کمی فاصله دادم به آن با گوشه صفحه
خب حالا باید به همین ترتیب زیر جایی که اسم طرف قرار هست باشد مثلا یک دکمه بگذارم که پیامک ارسال کند و یک دکمه هم بگذارم زنگ بزند به فرد.
بیایم یک Button بگذاریم برای ارسال. خب من یک دکمه میگذارم
<Button android:layout_width="60dp"
android:layout_height="60dp"
android:layout_below="@+id/textView"
android:layout_alignParentRight="true"
android:layout_marginRight="20dp"
android:layout_marginTop="10dp"
android:id="@+id/btnSms"

android:background="@android:drawable/sym_action_email"/>