پلتفرم اندروید از توسعه اجزای بومی سیستم عامل در Rust پشتیبانی میکند، یک زبان برنامهنویسی سیستم مدرن که تضمینهای ایمنی حافظه را با عملکردی معادل C/C++ ارائه میدهد. Rust از ترکیبی از بررسیهای زمان کامپایل که طول عمر و مالکیت شیء را اعمال میکنند و بررسیهای زمان اجرا که دسترسیهای معتبر به حافظه را تضمین میکنند، استفاده میکند و در نتیجه نیاز به جمعآوریکننده زباله را از بین میبرد.
Rust طیف وسیعی از ویژگیهای زبان مدرن را ارائه میدهد که به توسعهدهندگان اجازه میدهد در کد خود کارآمدتر و مطمئنتر باشند:
- برنامهنویسی همزمان ایمن - سهولتی که این امر به کاربران میدهد تا کد کارآمد و بدون نیاز به نخ بنویسند، باعث ایجاد شعار همزمانی بیباک Rust شده است.
- سیستم نوعبندی رسا - Rust با امکان استفاده از انواع بسیار رسا (مانند پوششهای Newtype و انواع enum با محتوا) به جلوگیری از اشکالات برنامهنویسی منطقی کمک میکند.
- بررسیهای قویتر در زمان کامپایل - باگهای بیشتری که در زمان کامپایل شناسایی میشوند، اعتماد به نفس توسعهدهنده را افزایش میدهند که وقتی کد با موفقیت کامپایل میشود، طبق برنامه عمل میکند.
- چارچوب تست داخلی - Rust یک چارچوب تست داخلی ارائه میدهد که در آن میتوان تستهای واحد را در کنار پیادهسازی که آزمایش میکنند قرار داد و این امر، گنجاندن تست واحد را آسانتر میکند.
- اجرای مدیریت خطا - توابعی که دارای خطاهای قابل بازیابی هستند میتوانند نوع Result را برگردانند که میتواند یک نوع موفقیت یا یک نوع خطا باشد. کامپایلر از فراخوانیکنندگان میخواهد که نوع خطای یک
Resultenum برگشتی از فراخوانی تابع را بررسی و مدیریت کنند. این امر احتمال بروز اشکالات ناشی از خطاهای مدیریت نشده را کاهش میدهد. - مقداردهی اولیه - Rust ایجاب میکند که هر متغیر قبل از استفاده، با یک عضو قانونی از نوع خود مقداردهی اولیه شود و از مقداردهی اولیه ناخواسته با یک مقدار ناامن جلوگیری میکند.
- مدیریت امنتر اعداد صحیح - همه تبدیلهای نوع عدد صحیح، تبدیل نوع صریح هستند. توسعهدهندگان نمیتوانند هنگام فراخوانی تابع هنگام انتساب به یک متغیر یا هنگام تلاش برای انجام محاسبات با انواع دیگر، به طور تصادفی تبدیل نوع انجام دهند. بررسی سرریز به طور پیشفرض در اندروید برای Rust فعال است که مستلزم صریح بودن عملیات سرریز است.
برای اطلاعات بیشتر، به مجموعه پستهای وبلاگ در مورد پشتیبانی از اندروید راست مراجعه کنید:
- Rust در پلتفرم اندروید
مروری بر اینکه چرا تیم اندروید Rust را به عنوان یک زبان پلتفرم جدید معرفی کرد، ارائه میدهد. - ادغام Rust در پروژه متنباز اندروید
بحث میکند که چگونه پشتیبانی از Rust به سیستم ساخت اضافه شده است، و چرا تصمیمات طراحی خاصی گرفته شده است. - تعامل Rust/C++ در پلتفرم اندروید
رویکرد تعاملپذیری Rust/C++ در اندروید را مورد بحث قرار میدهد.