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