مطالب پیشنهادی از سراسر وب

دوره Droidcon Boston '19: هر آنچه که تا کنون می‌خواستید درباره مدیریت خطا روی اندروید بدانید

دسته بندی ها: آموزش برنامه نویسی اندروید (Android) ، آموزش های پلورال سایت (Pluralsight) ، آموزش جاوا (Java) ، برنامه نویسی موبایل

همه ما از ابزارهای گزارش خرابی در برنامه های خود استفاده می کنیم، اما آیا تا به حال فکر کرده اید که در پشت صحنه چه چیزی رخ می دهد؟ این گزارشگران خرابی چگونه کارهایی را انجام می دهند که زندگی اشکال زدایی ما را آسان تر می کند؟ بیایید بفهمیم! در این جلسه، نحوه ایجاد SDK گزارش خرابی را از ابتدا با استفاده از UncaughtExceptionHandler اندروید یاد می گیرید، با ضبط و ارسال ردیابی پشته ها به یک نقطه پایانی HTTP شروع می کنید. سپس به تدریج عملکرد را به گزارشگر خرابی خود اضافه می کنیم تا اینکه به SDK تست شده تبدیل شود که اطمینان داریم در اشکال زدایی خرابی های تولید، ساعت ها برای ما صرفه جویی می کند. 
همانطور که انتظار می رود در حالی که کارهای داخلی ابزار خود را عمیق تر بررسی می کنیم، در این راه با چالش هایی روبرو خواهیم شد. ما سناریوهای مختلف، معنی آن ها برای برنامه های ما و چگونگی پیدا کردن بهترین راهکارها برای حل مبادلات معین و راهکارهای آن ها را تحلیل خواهیم کرد. در اینجا برخی از چالش هایی که با آن روبرو خواهیم شد وجود دارد: برای مبتدیان، در مورد محدودیت های طراحی ناشی از کار در یک محیط کم حافظه بحث خواهیم کرد و اینکه چگونه جریان سازی IO و سریال سازی JSON می تواند به ما کمک کند تا OutOfMemoryErrors  را بگیریم. همچنین بهترین روش های ذخیره سازی پنهان گزارش های تحویل داده نشده بر روی دیسک را برای تحویل در آینده و راه اندازی بارگذاری خودکار گزارشات در پاسخ به تغییرات اتصال خواهیم آموخت. 
مسائل مربوط به حریم خصوصی را در نظر خواهیم گرفت، از جمله اینکه چگونه می توانیم با فیلتر کردن اطلاعات حساس، ابرداده های مفید درباره دستگاه و اپلیکیشن را در هنگام خرابی جمع آوری کنیم و به حریم خصوصی کاربر احترام بگذاریم. برای توسعه بیشتر ابزار خود، موارد استثنایی را که در یک بلوک try-catch قرار گرفته اند، ضبط خواهیم کرد و در مورد مشکلات تضمین thread-safety در این شرایط بحث می کنیم. سپس به سراغ استراتژی های مختلف برای تست گزارشگر خرابی می رویم و از مزایای تست های پایان به پایان جعبه سیاه می گذریم. مسئله دیگری که باید بررسی شود این است که چگونه می توانیم در برنامه هایی که از R8 استفاده می کنند ردیابی پشته را از بین ببریم – ما بارگذاری یک فایل نقشه برداری را در یک نقطه پایانی HTTP بررسی خواهیم کرد و محتوای آن را می خوانیم تا ردیابی پشته قابل خواندن را آشکار سازیم. 
حتی مواردی وجود دارد که می توانیم برای برجسته سازی مفیدترین قسمت های ردیابی پشته و همچنین تفکر از طریق گروه بندی خطاهای مرتبط با هم انجام دهیم. سپس پشتیبانی از سطوح مختلف API و چگونگی تأثیر آن بر جمع آوری داده های مفید را در بررسی می کنیم و در پایان، به ضبط خطاها در برنامه های NDK و مشکلات احتمالی در رابط بومی جاوا خواهیم پرداخت.

برای دیدن سایر بخش های این دوره روی لینک Droidcon Boston '19 کلیک کنید.

هر آنچه که تا کنون می‌خواستید درباره مدیریت خطا روی اندروید بدانید

آیا این نوشته را دوست داشتید؟
Pluralsight Droidcon Boston '19: Everything You Ever Wanted to Know About Error Handling on Android Author:Droidcon Boston Duration:0:50:46 Level:Intermediate

We all use crash reporting tools in our apps, but have you ever wondered what happens under the hood? How do these crash reporters do what they do to make our debugging lives easier? Let’s find out! In this session, you'll learn how to create a crash reporting SDK from scratch using Android's UncaughtExceptionHandler, starting by capturing and sending stack traces to an HTTP endpoint. We'll then progressively add functionality onto our crash reporter until it's turned into a battle-tested SDK that we're confident will save us hours of debugging crashes in production. As expected diving deeper into the inner workings of our tools, we’ll encounter challenges along the way. We’ll analyze the various scenarios, what they mean for our apps, and how to best go about solving for them given tradeoffs and solutions. Here are some of the challenges we’ll encounter: For starters, we’ll discuss the design constraints caused by working in a low-memory environment, and how streaming IO and JSON serialization can help us capture OutOfMemoryErrors. We’ll also learn the best practices of caching undelivered reports on disk for future delivery and triggering automatic upload of reports in response to connectivity changes. We’ll consider privacy issues, like how we can collect useful metadata about the device and application at the time of crash while respecting user privacy by filtering sensitive information. To further expand our tool, we’ll capture exceptions caught in a try-catch block and discuss the difficulties with ensuring thread-safety in these situations. Then we’ll move on to the various strategies for testing a crash reporter and walk through the benefits of black-box end-to-end tests. Another issue to examine is how we can deobfuscate stack traces in apps which use R8—we’ll review uploading a mapping file to an HTTP endpoint and read its contents to reveal a readable stack trace. There are even things we can do to highlight the most useful parts of stack traces as well as thinking through grouping related errors together. Then we’ll consider supporting different API levels and how it affects the collection of useful data, and finally, we’ll touch on capturing errors in NDK apps and the potential pitfalls in the Java Native Interface.

پیشنهاد آموزش مرتبط در فرادرس