پلتفرم اندروید برای توسعه اجزای سیستم عامل بومی در 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++ قابلیت همکاری در اندروید بحث میکند.