Phát triển phần mềm Android (Android Software Develope) là quá trình phát triển các ứng dụng mới cho các thiết bị chạy hệ điều hành Android. Google tuyên bố rằng "Ứng dụng Android có thể được viết bằng ngôn ngữ Kotlin, Java và C ++" bằng cách sử dụng bộ công cụ phát triển phần mềm Android (SDK), trong khi sử dụng các ngôn ngữ khác cũng có thể. Tất cả các ngôn ngữ không phải là JVM, chẳng hạn như Go, JavaScript, C, C ++, cần sự trợ giúp của mã ngôn ngữ JVM, có thể được cung cấp bởi các công cụ, có khả năng hỗ trợ API bị hạn chế. Một số ngôn ngữ lập trình và công cụ cho phép hỗ trợ ứng dụng đa nền tảng (nghĩa là cho cả Android và iOS). Các công cụ, môi trường phát triển và hỗ trợ ngôn ngữ của bên thứ ba cũng tiếp tục phát triển và mở rộng kể từ khi SDK ban đầu được phát hành vào năm 2008. Ngoài ra, với các thực thể kinh doanh lớn như Walmart, Amazon và Bank of America đang chú ý tham gia và bán thông qua điện thoại di động, phát triển ứng dụng di động đang chứng kiến một sự thay đổi. Cơ chế phân phối ứng dụng Android chính thức cho người dùng cuối là Google Play; nó cũng cho phép phát hành ứng dụng dần dần theo giai đoạn, cũng như phân phối các phiên bản ứng dụng trước khi phát hành cho người thử nghiệm.
Bộ công cụ phát triển phần mềm Android (SDK) bao gồm một bộ công cụ phát triển toàn diện. Chúng bao gồm trình gỡ lỗi, thư viện, trình giả lập thiết bị cầm tay dựa trên QEMU, tài liệu, mã mẫu và hướng dẫn. Các nền tảng phát triển được hỗ trợ hiện tại bao gồm các máy tính chạy Linux (mọi phân phối Linux dành cho máy tính để bàn hiện đại), Mac OS X 10.5.8 trở lên và Windows 7 trở lên. Kể từ tháng 3 năm 2015, SDK không có sẵn trên Android, nhưng có thể phát triển phần mềm bằng cách sử dụng các ứng dụng Android chuyên dụng.
Cho đến khoảng cuối năm 2014, môi trường phát triển tích hợp (IDE) được hỗ trợ chính thức là Eclipse sử dụng Plugin Công cụ phát triển Android (ADT), mặc dù IntelliJ IDEA IDE (tất cả các phiên bản) hỗ trợ đầy đủ sự phát triển của Android, và NetBeans IDE cũng hỗ trợ phát triển Android thông qua plugin. Kể từ năm 2015, Android Studio, được tạo bởi Google và được cung cấp bởi IntelliJ, là IDE chính thức; tuy nhiên, các nhà phát triển có thể tự do sử dụng những người khác, nhưng Google đã nói rõ rằng ADT đã chính thức bị từ chối kể từ cuối năm 2015 để tập trung vào Android Studio với tư cách là IDE Android chính thức. Ngoài ra, các nhà phát triển có thể sử dụng bất kỳ trình soạn thảo văn bản nào để chỉnh sửa các tệp Java và XML, sau đó sử dụng các công cụ dòng lệnh (Cần có Bộ công cụ phát triển Java và Ant Ant) để tạo, xây dựng và gỡ lỗi các ứng dụng Android cũng như kiểm soát các thiết bị Android được đính kèm (ví dụ: kích hoạt khởi động lại, cài đặt (các) gói phần mềm từ xa). Các cải tiến đối với SDK của Android đi đôi với phát triển nền tảng Android tổng thể. SDK cũng hỗ trợ các phiên bản cũ hơn của nền tảng Android trong trường hợp các nhà phát triển muốn nhắm mục tiêu các ứng dụng của họ tại các thiết bị cũ hơn. Các công cụ phát triển là các thành phần có thể tải xuống, vì vậy sau khi đã tải xuống phiên bản và nền tảng mới nhất, các nền tảng và công cụ cũ hơn cũng có thể được tải xuống để kiểm tra khả năng tương thích.
Các ứng dụng Android được đóng gói ở định dạng .apk và được lưu trong thư mục / data / app trên HĐH Android (thư mục chỉ có thể truy cập đối với người dùng root vì lý do bảo mật). Gói APK chứa các tệp .dex (các tệp mã byte được biên dịch có tên là tệp thực thi Dalvik), tệp tài nguyên, v.v.
Có một cộng đồng những người đam mê mã nguồn mở xây dựng và chia sẻ các bản phân phối dựa trên Android (ví dụ như firmware) với một số tùy chỉnh và các tính năng bổ sung, như hỗ trợ âm thanh không mất dữ liệu FLAC và khả năng lưu trữ các ứng dụng đã tải xuống trên thẻ nhớ microSD. Điều này thường liên quan đến việc root thiết bị. Root cho phép người dùng truy cập root vào hệ điều hành, cho phép kiểm soát hoàn toàn điện thoại. Root cũng có một số nhược điểm, bao gồm tăng nguy cơ bị hack, khả năng bị brick cao, mất bảo hành, tăng rủi ro tấn công virus, v.v. Cũng có thể cài đặt phần mềm tùy chỉnh, mặc dù bộ tải khởi động của thiết bị cũng phải được mở khóa. Firmware tùy chỉnh cho phép người dùng điện thoại cũ chỉ sử dụng các ứng dụng có sẵn trên các bản phát hành mới hơn.
Android được tạo ra bởi Liên minh thiết bị cầm tay, được lãnh đạo bởi Google. Phản hồi ban đầu về việc phát triển các ứng dụng cho nền tảng Android đã bị xáo trộn. Các vấn đề được trích dẫn bao gồm lỗi, thiếu tài liệu, cơ sở hạ tầng QA không đầy đủ và không có hệ thống theo dõi vấn đề công cộng. (Google đã công bố trình theo dõi vấn đề vào ngày 18 tháng 1 năm 2008.) Vào tháng 12 năm 2007, Adam MacBeth, người sáng lập startup di động MergeLab tuyên bố: "Chức năng không có ở đó, tài liệu kém hoặc chỉ không hoạt động ... Rõ ràng là chưa sẵn sàng trong thời gian tốt nhất. Mặc dù vậy, các ứng dụng nhắm mục tiêu Android đã bắt đầu xuất hiện vào tuần sau khi nền tảng được công bố. Ứng dụng có sẵn công khai đầu tiên là trò chơi Snake.
Bản phát hành xem trước của SDK Android đã được phát hành vào ngày 12 tháng 11 năm 2007. Vào ngày 15 tháng 7 năm 2008, Nhóm Thử thách nhà phát triển Android đã vô tình gửi email đến tất cả những người tham gia trong Thử thách nhà phát triển Android thông báo rằng bản phát hành SDK mới có sẵn trong một khu vực tải về "riêng tư". Email này dành cho những người chiến thắng trong vòng đầu tiên của Thử thách nhà phát triển Android. Sự tiết lộ rằng Google đang cung cấp các bản phát hành SDK mới cho một số nhà phát triển chứ không phải những người khác (và giữ sự sắp xếp này ở chế độ riêng tư) dẫn đến sự thất vọng được báo cáo rộng rãi trong cộng đồng nhà phát triển Android tại thời điểm đó.
Vào ngày 18 tháng 8 năm 2008, Android 0.9 SDK beta đã được phát hành. Bản phát hành này cung cấp API cập nhật và mở rộng, các công cụ phát triển được cải tiến và thiết kế cập nhật cho màn hình chính. Hướng dẫn chi tiết để nâng cấp có sẵn cho những người đã làm việc với bản phát hành trước đó. Vào ngày 23 tháng 9 năm 2008, SDK Android 1.0 (Phiên bản 1) đã được phát hành. Theo ghi chú phát hành, nó bao gồm "chủ yếu là sửa lỗi, mặc dù một số tính năng nhỏ hơn đã được thêm vào." Nó cũng bao gồm một số thay đổi API từ phiên bản 0.9. Nhiều phiên bản đã được phát hành kể từ khi nó được phát triển.
Vào ngày 5 tháng 12 năm 2008, Google đã công bố Android Dev Phone đầu tiên, một thiết bị mở khóa bằng SIM và mở khóa phần cứng được thiết kế cho các nhà phát triển tiên tiến. Đó là phiên bản sửa đổi của điện thoại Dream của HTC. Mặc dù các nhà phát triển có thể sử dụng các thiết bị tiêu dùng thông thường để kiểm tra và sử dụng các ứng dụng của họ, một số nhà phát triển có thể chọn một thiết bị mở khóa chuyên dụng hoặc không có hợp đồng.
Tính đến tháng 7 năm 2013, hơn một triệu ứng dụng đã được phát triển cho Android, với hơn 25 tỷ lượt tải xuống. Một nghiên cứu vào tháng 6 năm 2011 chỉ ra rằng hơn 67% các nhà phát triển di động đã sử dụng nền tảng này, tại thời điểm xuất bản. Các lô hàng điện thoại thông minh Android được dự báo sẽ vượt 1,2 tỷ đơn vị trong năm 2018 với thị phần 85%.
Có rất nhiều vị trí dành có lập trình viên Android, bạn có thể tham khảo trên Recruitery hoặc nhấp vào đây: https://recruitery.co/job.html?location=0&keyword=android
- Junior Mobile Developer
- Junior Kotlin/Java Developer
- React Native Developer
- Cử nhân Công nghệ thông tin, Khoa học máy tính, Kỹ thuật máy tính, Kỹ thuật điện, Kỹ thuật viễn thông, Toán học, Cơ học và Tin học hoặc tương đương;
- Có kinh nghiệm trong việc phát triển ứng dụng dịch vụ Android bằng Java / Kotlin hoặc C ++.
- Có kinh nghiệm thực hành trong việc sử dụng ít nhất một công cụ kiểm soát phiên bản như Git, gerrit.
- Có kinh nghiệm thực hành trong việc sử dụng JIRA, VLM, Collab.
- Kiến thức vững về mô hình kiến trúc trên Mobile (MVP, MVC, MVP, MVVM, VIPER)
- Kiến thức vững làm việc với File System và Web Services (REST, JSON, SOAP)
- Nhiều kinh nghiệm làm việc với các thư viện mở, các SDK cho Mobile
- Kinh nghiệm với data binding, thread handling, lazy loading, notifications, analytics, ...
- Kinh nghiệm với profiling / debugging, kiểm thử và tối ưu hiệu năng
- Kinh nghiệm làm việc mô hình Agile / Scrum, GIT Flow, …
- Khả năng lựa chọn kiến trúc, đề xuất thiết kế, đưa ra giải pháp tốt nhất cho ứng dụng
- Khả năng làm việc nhóm, làm việc online với leader / khách hàng đảm bảo hiệu quả