iHeartRadio tạo cơ sở mã rõ ràng và tinh gọn hơn bằng Thành phần cấu trúc Android
Sử dụng bộ sưu tập để sắp xếp ngăn nắp các trang
Lưu và phân loại nội dung dựa trên lựa chọn ưu tiên của bạn.

iHeartRadio có trụ sở tại Thành phố New York cung cấp nhạc không giới hạn và hàng nghìn đài phát thanh trong một ứng dụng duy nhất. Các hoạt động của công ty bao gồm phát sóng trên đài phát thanh, trực tuyến, trên thiết bị di động, kỹ thuật số và mạng xã hội, các buổi hoà nhạc và sự kiện trực tiếp, phát sóng lại, dịch vụ nghiên cứu âm nhạc và đại diện cho các phương tiện truyền thông độc lập.
Kể từ khi ra mắt vào năm 2008, ứng dụng này đã được người nghe trên toàn thế giới tải xuống hơn một tỷ lần. Tuy nhiên, vào cuối năm 2017, cơ sở mã đã cũ và việc quản lý mã cũng như tích hợp các tính năng mới trở nên khó khăn.
Những việc họ đã làm
iHeartRadio đã chọn Android Architecture Components khi bắt đầu nâng cấp mã của mình. Thư viện lưu trữ Room đơn giản và dễ triển khai đã thu hút các kỹ sư của iHeartRadio vì khả năng xử lý những việc như truy vấn không đồng bộ và hỗ trợ RxJava (iHeartRadio sử dụng rộng rãi trong mã của họ).
Họ cũng áp dụng các thành phần nhận biết vòng đời, thực hiện các hành động để phản hồi một thay đổi trong trạng thái vòng đời của một thành phần khác. Các kỹ sư của iHeartRadio nhận thấy những thành phần này rất hữu ích trong việc giảm các phần phụ thuộc được chèn vào các hoạt động và mảnh. Ngoài ra, công ty này đã tạo các nguyên mẫu bằng ViewModel, cho phép dữ liệu tiếp tục có tác dụng khi có thay đổi về cấu hình, chẳng hạn như xoay màn hình.
Kết quả
iHeartRadio nhận thấy việc di chuyển sang Thành phần kiến trúc và sử dụng các thư viện để kiểm thử mức độ hiệu quả của quá trình tích hợp rất dễ dàng.
Room và các thành phần khác yêu cầu sử dụng rất ít mã khởi tạo, nghĩa là mã của ứng dụng hiện ngắn hơn đáng kể. Architecture Components (Các thành phần kiến trúc) cũng giúp giảm tình trạng rò rỉ bộ nhớ. Một lợi ích khác là các nhà phát triển mới tham gia nhóm có thể nhanh chóng làm quen và bắt đầu viết mã.
Nhìn chung, việc áp dụng Architecture Components (Các thành phần kiến trúc) đã giúp iHeartRadio tạo ra một cơ sở mã sạch hơn, tinh gọn hơn, giúp họ ngăn chặn lỗi.
Đó là tin vui cho mọi ứng dụng, đặc biệt là ứng dụng cung cấp âm thanh kỹ thuật số đa năng cho khán giả trên toàn thế giới.
Bắt đầu
Bộ thành phần cấu trúc Android dành cho tất cả nhà phát triển trong Android Jetpack. Bắt đầu với Bộ thành phần cấu trúc Android.
Nội dung và mã mẫu trên trang này phải tuân thủ các giấy phép như mô tả trong phần Giấy phép nội dung. Java và OpenJDK là nhãn hiệu hoặc nhãn hiệu đã đăng ký của Oracle và/hoặc đơn vị liên kết của Oracle.
Cập nhật lần gần đây nhất: 2018-05-03 UTC.
[[["Dễ hiểu","easyToUnderstand","thumb-up"],["Giúp tôi giải quyết được vấn đề","solvedMyProblem","thumb-up"],["Khác","otherUp","thumb-up"]],[["Thiếu thông tin tôi cần","missingTheInformationINeed","thumb-down"],["Quá phức tạp/quá nhiều bước","tooComplicatedTooManySteps","thumb-down"],["Đã lỗi thời","outOfDate","thumb-down"],["Vấn đề về bản dịch","translationIssue","thumb-down"],["Vấn đề về mẫu/mã","samplesCodeIssue","thumb-down"],["Khác","otherDown","thumb-down"]],["Cập nhật lần gần đây nhất: 2018-05-03 UTC."],[],[],null,["# iHeartRadio creates a cleaner, leaner code base with Android Architecture Components\n\nNew York City-based [iHeartRadio](https://www.iheart.com/) provides\nunlimited music and thousands of radio stations, all in one app. The company's\noperations include radio broadcasting, online, mobile, digital and social media,\nlive concerts and events, syndication, music-research services, and\nindependent media representation.\n\nListeners around the world have downloaded the app over a billion times\nsince it launched in 2008. By late 2017, however, the codebase was aging,\nand managing the code and integrating new features proved to be difficult.\n\nWhat they did\n-------------\n\niHeartRadio chose\n[Android Architecture Components](/topic/libraries/architecture) as they\nbegan upgrading their code. The straightforward, easy-to-implement\n[Room](/topic/libraries/architecture/room) persistency library was\nattractive to their engineers for its\ncapabilities for handling such things as asynchronous queries and support for\nRxJava, which iHeartRadio uses extensively in their code.\n\nThey also adopted\n[lifecycle-aware components](/topic/libraries/architecture/lifecycle),\nwhich perform actions in response to a change in the\nlifecycle status of another component. The iHeartRadio\nengineers found these components very useful for shrinking dependencies\ninjected into activities and fragments. In addition, the company created\nprototypes using [ViewModel](/topic/libraries/architecture/viewmodel),\nwhich allows data to survive configuration changes, such as screen rotations.\n\nResults\n-------\n\niHeartRadio found it easy to migrate over to\n[Architecture Components](/jetpack/arch)\nand to use the libraries to test how well integration was working.\n[Room](/topic/libraries/architecture/room) and other components require\nthe use of very little boilerplate code, meaning that the app's code is\nnow significantly shorter. [Architecture Components](/jetpack/arch)\nalso resulted in fewer memory leaks. An additional benefit was that new\ndevelopers joining the team could quickly get ramped up and start coding.\n\nOverall, adopting [Architecture Components](/jetpack/arch) has helped\niHeartRadio to create a cleaner, leaner code base that helps them to prevent errors.\nThat's good news for any app, especially for one offering\nall-in-one digital audio to a worldwide audience.\n\nGet started\n-----------\n\nAndroid Architecture Components is open to all developers as part of\n[Android Jetpack](/jetpack). [Get\nstarted with Android Architecture Components](/jetpack/arch)."]]