Giới thiệu công ty TNHH HasBrain Việt Nam
- Địa chỉ: 268 Tô Hiến Thành, Phường 15, Quận 10, Thành phố Hồ Chí Minh.
- Lĩnh vực: Phát triển ứng dụng nền tảng Mobile.
Công ty TNHH HasBrain Việt Nam, thành lập vào ngày 17/01/2014, là một phần của công ty 2359 Media có trụ sở chính tại Singapore và hai chi nhánh tại Việt Nam và Indonesia 2359 Media chuyên cung cấp giải pháp và phần mềm nhằm hỗ trợ phát triển chiến lược kinh doanh trên nền tảng di động Các dịch vụ của công ty đã được nhiều tập đoàn lớn như GIC, MDA, SingTel và HTC tin dùng.
Nhiệm vụ chức năng của HasBrain Việt Nam:
- Cung cấp các giải pháp tư vấn thiết kế phần mềm trên nền tảng di động.
- Đào tạo, bồi dưỡng đội ngũ kỹ sư đầy đủ kinh nghiệm và kỹ năng làm việc khoa học.
Mục tiêu và nhiệm vụ của sinh viên
Học tập và nghiên cứu phát triển ứng dụng trên nền tảng Android giúp người học nắm vững quy trình phát triển ứng dụng thực tế, cải thiện kỹ năng làm việc nhóm và áp dụng phong cách làm việc khoa học hiệu quả Đồng thời, việc này cũng nâng cao khả năng giao tiếp và tiếng Anh, góp phần vào sự phát triển nghề nghiệp trong lĩnh vực công nghệ.
- Hoàn thành quá trình đào tạo của công ty về phát triển ứng dụng trên nền tảng Android.
- Tham gia các lớp kỹ năng giao tiếp tiếng anh tại công ty.
- Nghiên cứu tiếp tục, vận dụng kiến thức để thực hiện khóa luận tốt nghiệp và làm việc sau này.
Cơ sở lý thuyết
Lý thuyết đã học
Dựa trên kiến thức lập trình ứng dụng Java đã học tại trường và trong quá trình thực tập, tôi đã củng cố kỹ năng lập trình Java và học được cách phát triển ứng dụng Android.
Áp dụng
Thực tập tại công ty mang lại cơ hội quý giá để mở rộng kiến thức chuyên môn, trải nghiệm làm việc thực tế và học hỏi kinh nghiệm từ các nhân viên giàu kinh nghiệm Điều này giúp sinh viên chuẩn bị tốt hơn cho hành trang nghề nghiệp sau khi tốt nghiệp Qua quá trình thực tập, sinh viên có thể tiếp thu nhiều kỹ năng làm việc cần thiết.
Thay đổi phong cách làm việc khoa học, hiểu quả hơn.
Nâng cao kỹ năng giao tiếp bằng tiếng Anh. Ứng dụng các kiến thức đã học vào đề tài khóa luận tốt nghiệp sắp tới.
Củng cố, chuẩn bị kiến thức để đi làm sau này.
Nội dung thực tập
Giới thiệu về Android
Android là hệ điều hành dựa trên Linux, được thiết kế cho các thiết bị di động như điện thoại thông minh và máy tính bảng Phát triển bởi Tổng công ty Android với sự hỗ trợ của Google, hệ điều hành này ra mắt vào năm 2007 cùng với Liên minh thiết bị cầm tay mở Android có mã nguồn mở, cho phép các nhà phát triển tự do điều chỉnh và phân phối Cộng đồng lập trình viên đông đảo đã tạo ra hàng trăm ngàn ứng dụng, với khoảng 700.000 ứng dụng vào tháng 10 năm 2012 và 25 tỷ lượt tải từ Google Play.
Android đã trở thành nền tảng điện thoại thông minh phổ biến nhất thế giới từ quý 4 năm 2010, vượt qua Symbian nhờ vào tính năng nhẹ, khả năng tùy chỉnh cao và chi phí thấp Điều này khiến các công ty công nghệ lựa chọn Android cho các thiết bị công nghệ cao thay vì phát triển hệ điều hành từ đầu Mặc dù được thiết kế cho điện thoại và máy tính bảng, Android đã mở rộng ra TV, máy chơi game và nhiều thiết bị điện tử khác Bản chất mở của Android khuyến khích một cộng đồng lập trình viên đông đảo, tạo ra các dự án mã nguồn mở, bổ sung tính năng cao cấp cho người dùng thích khám phá và đưa Android vào các thiết bị ban đầu chạy hệ điều hành khác.
Vào quý 3 năm 2012, Android chiếm 75% thị phần điện thoại thông minh toàn cầu, với 500 triệu thiết bị được kích hoạt và 1,3 triệu lượt kích hoạt mỗi ngày Thành công này đã khiến Android trở thành mục tiêu trong các vụ kiện liên quan đến bằng phát minh, góp phần vào "cuộc chiến điện thoại thông minh" giữa các công ty công nghệ.
Tổng công ty Android (Android, Inc.) được thành lập vào tháng 10 năm 2003 tại Palo Alto, California bởi Andy Rubin, Rich Miner, Nick Sears và Chris White với mục tiêu phát triển các thiết bị di động thông minh hơn, có khả năng nhận biết vị trí và sở thích của người dùng Mặc dù đội ngũ sáng lập đều là những nhân vật nổi bật trong ngành công nghệ, công ty hoạt động một cách âm thầm, chỉ tiết lộ rằng họ đang phát triển phần mềm cho điện thoại di động Tuy nhiên, vào cuối năm đó, Rubin gặp khó khăn về tài chính và nhận được sự hỗ trợ 10.000 USD từ người bạn Steve Perlman, mặc dù Perlman từ chối tham gia vào công ty.
Vào ngày 17 tháng 8 năm 2005, Google đã mua lại Tổng công ty Android và biến nó thành một bộ phận trực thuộc Các nhân viên chủ chốt như Rubin, Miner và White tiếp tục làm việc tại công ty sau thương vụ này Mặc dù thông tin về Tổng công ty lúc đó còn hạn chế, nhiều người dự đoán rằng Google có kế hoạch gia nhập thị trường điện thoại di động Nhóm do Rubin lãnh đạo tại Google đã phát triển một nền tảng thiết bị di động dựa trên nhân Linux, với lời hứa cung cấp hệ thống linh hoạt và có khả năng nâng cấp cho các nhà sản xuất điện thoại và nhà mạng Google đã hợp tác với nhiều hãng phần cứng và đối tác phần mềm, thông báo cho các nhà mạng về sự sẵn sàng hợp tác ở nhiều cấp độ khác nhau.
Ngày 5 tháng 11 năm 2007, Liên minh thiết bị cầm tay mở (Open Handset Alliance), một hiệp hội bao gồm nhiều công ty trong đó có Texas Instruments, Tập đoàn Broadcom, Google, HTC, Intel, LG, Tập đoàn Marvell Technology, Motorola, Nvidia, Qualcomm, Samsung Electronics, Sprint Nextel và T-Mobile được thành lập với mục đích phát triển các tiêu chuẩn mở cho thiết bị di động Cùng ngày, Android cũng được ra mắt với vai trò là sản phẩm đầu tiên của Liên minh, một nền tảng thiết bị di động được xây dựng trên nhân Linux phiên bản 2.6 Chiếc điện thoại chạy Android đầu tiên được bán ra là HTC Dream, phát hành ngày 22 tháng 10 năm 2008 Biểu trưng của hệ điều hành Android mới là một con rôbốt màu xanh lá cây do hãng thiết kế Irina Blok tại California vẽ.
Kể từ năm 2008, Android đã trải qua nhiều lần cập nhật, cải tiến hệ điều hành và bổ sung tính năng mới, với phiên bản mới nhất là 6.0 Marshmallow Năm 2010, Google giới thiệu dòng sản phẩm Nexus, bao gồm điện thoại thông minh và máy tính bảng chạy Android, do các đối tác phần cứng sản xuất Nexus One, chiếc điện thoại đầu tiên, được phát triển cùng HTC, sau đó là Nexus 4 và Nexus 10 do LG và Samsung sản xuất Google coi Nexus là thiết bị Android chủ lực, sở hữu những tính năng phần cứng và phần mềm tiên tiến nhất.
Công cụ phát triển ứng dụng Android
Android Studio là phần mềm phát triển ứng dụng Android được giới thiệu tại Google I/O 2013, dựa trên nền tảng IntelliJ IDEA Community Edition Công cụ này hoạt động theo kiểu WYSIWYG, cho phép lập trình viên dễ dàng tạo ứng dụng, thực hiện thay đổi và xem trước trong thời gian thực, đồng thời giúp tăng tốc quy trình phát triển và thiết kế giao diện đẹp hơn Đặc biệt, Android Studio còn hỗ trợ tiếng Việt, mang đến trải nghiệm lập trình thân thiện cho người dùng.
Android Studio cung cấp nhiều giả lập để kiểm tra ứng dụng, đảm bảo hoạt động mượt mà ngay cả khi không có thiết bị thực Ngoài ra, các công cụ tối ưu hóa, đồ thị doanh số và số liệu phân tích hỗ trợ các nhà phát triển quản lý hiệu quả ứng dụng của mình và xác định hướng đi phù hợp cho từng thiết bị Android.
Bản cài đặt có thể download trực tiếp trên trang chủ của Adnroid Studio.
Một số yêu cầu kỹ thuật:
- Microsoft® Windows 8/7/Vista/2003 (32 or 64-bit)
- Tối thiểu 2 GB RAM hoặc 4 GB RAM,
- 4Gb bộ nhớ đĩa cứng.
- Độ phân giải tối thiếu 1280 x 800
- Lựa chọn thêm cho giả lập: Intel® processor with support for Intel® VT-x, Intel® EM64T (Intel® 64), and Execute Disable (XD) Bit functionality
Sau khi tải về, tiến hành mở file cài đặt Màn hình Welcome to Android Studio sẽ xuất hiện nhấn Next để tiếp tục.
Chọn các thành phần cần cài đặt, mặc định sẽ chọn tất cả và nhấn Next để tiếp tục Đọc kỹ xác nhận bản quyền và các ràng buộc liên quan đến mã nguồn mở, sau đó chọn I Agree để tiếp tục.
Tiếp theo lựa chọn nơi cài đặt Android Studio Bạn có thể thay đổi hoặc để mặc định như vậy sau đó Next để tiếp tục
Sau đó chọn Finish để tiến hành cài đặt Sau khi cài đặt, phần mềm sẽ chuẩn bị cho phiên làm việc đầu tiên.
Lần đầu tiên yêu cầu lựa chọn nơi lưu trữ thông tin cấu hình của ứng dụng và nhấn ok để hoàn tất.
Chờ quá trình download và cấu hình các thành phần hỗ trợ hoàn tất
Sau đó chọn Finish để hoàn tất.
Bây giờ có thể viết được ứng dụng Android đầu tiên
Genymotion là phần mềm giả lập Android được ưa chuộng bởi lập trình viên nhờ hiệu suất cao và đa dạng phiên bản với nhiều kích thước màn hình Phần mềm này cho phép người dùng thay thế thiết bị thật để thử nghiệm ứng dụng Genymotion cung cấp phiên bản miễn phí với tính năng hạn chế, trong khi để sử dụng đầy đủ các chức năng, người dùng cần trả phí bản quyền.
Cài đặt Để tiến hành cài đặt Genymotion, truy cập vào trang chủ Genymotion, đăng ký tài khoản và chọn phiên bản phù hợp để download.
Sau khi download về, tiến hành cài đặt Quá trình cài đặt đơn giản qua vài bước.
Sau khi cài đặt hoàn tất, tiến hành download máy ảo phù hợp bằng các mở giao ứng dụng genymotion.
Để thêm máy ảo, bạn hãy chọn mục "Add" từ giao diện chính Để tải máy ảo, bạn cần đăng nhập bằng tài khoản đã đăng ký trên trang chủ Genymotion.
Tiếp theo lựa chọn phiên bản với kích thước màn hình phù hợp rồi chọn Next
Kiểm tra thông tin lại máy ảo một lần nữa và Next Đợi quá trình download hoàn tất và trở lại giao diện chính, chọn máy ảo và Start
Hoàn tất quá trình cài đặt và download máy ảo để thực hiện chạy thử ứng dụng Android trên genymotion
Android SDK là bộ công cụ phát triển phần mềm dành cho nền tảng Android, bao gồm nhiều API, công cụ lập trình, tài liệu hướng dẫn và máy ảo hỗ trợ lập trình ứng dụng Bộ công cụ này được tích hợp vào phần mềm Android Studio, giúp lập trình viên dễ dàng phát triển và kiểm thử ứng dụng Android.
Sau khi cài đặt Android Studio và khởi động lần đầu, bộ công cụ Android SDK sẽ tự động được tải về và thường được lưu trữ trong thư mục C:\ProgramFiles\Android\.
Bên trong thư mục sẽ có SDK Manager và AVD Manager
SDK Manager.exe là công cụ quản lý các API hỗ trợ công việc lập trình Android.
AVD Manager.exe là công cụ quản lý và cấu hình máy ảo Android, nhưng hiệu suất của nó không cao và phiên bản bị hạn chế Một giải pháp thay thế tốt hơn là sử dụng máy ảo Genymotion Để quản lý SDK, bạn cần mở file SDK Manager.exe.
Từ đây có thể quản lý việc update, delete các API của các phiên bản android hỗ trợ việc lập trình ứng dụng Android.
Giáo trình về Android
During my internship, I studied using the online curriculum from [CodePath](http://guides.codepath.com/android) and the syllabus provided by the company, which can be found at [hasBrain Android Syllabus](https://github.com/jupitervn/hasBrain_AndroidSyllabus/tree/test).
3.3.1 Xây dựng ứng dụng android đầu tiên Để xây dựng được ứng dụng Android Cần mở Android Studio và chọn Start a new
Android Studio poject để tạo ứng dụng. Đặt tên cho ứng dụng và chọn Next
Khi phát triển ứng dụng, việc lựa chọn phiên bản phù hợp là rất quan trọng Minimum SDK là phiên bản thấp nhất mà ứng dụng có thể hoạt động, cho phép bạn viết ứng dụng cho nhiều nền tảng như smartphone, tablet, TV và thiết bị đeo.
Khi bắt đầu phát triển ứng dụng trên Android Studio, bạn cần chọn giao diện chính cho ứng dụng Mặc định, Android Studio cung cấp sẵn các giao diện phổ biến, trong đó bạn có thể chọn Empty Activity Giao diện chính thường được đặt tên là MainActivity và bao gồm hai thành phần quan trọng: Layout FrontEnd và Code BackEnd.
- Layout sử dụng ngôn ngữ XML để xây dựng giao diện bằng code hoặc design.
- Code là phần xử lý bên dưới giao diện sử dụng ngôn ngữ Java.
Một giao diện trong Android phải bao gồm hai thành phần bắt buộc được khai báo trong AndroidManifest.xml Tên giao diện cần tuân theo quy ước "Tên giao diện + Activity", và hệ thống sẽ tự động tạo giao diện với tên "activity_tên giao diện" Sau khi hoàn tất, nhấn Finish để hoàn tất quá trình.
Sau khi tạo project hoàn tất Xuất hiện giao diện thiết kế ứng dụng
1 Thanh công cụ chứ các menu chức năng, công cụ.
2 Cấu trúc thư mục của một ứng dụng Android.
3 Các control cơ bản trong Android Có thể kéo thả vào giao diện
4 Giao diện xem thử của ứng dụng
5 Cấu trúc control trong layout
6 Thuộc tính của control và layout. Để chuyển qua code xml bên dưới các control (3) chọn Text để thiết kế bằng code xml.
Giao diện ứng dụng Android sử dụng RelativeLayout để chứa các control và layout khác, trong đó TextView là một control quan trọng dùng để hiển thị nội dung văn bản Để khởi động ứng dụng đầu tiên, người dùng cần mở máy ảo Genymotion và chọn nút Run trên thanh công cụ hoặc vào menu Run để chọn Run 'app' Sau đó, hãy chọn máy ảo và nhấn OK để tiếp tục.
3.3.2 Tìm hiểu ứng dụng android
Cấu trúc cơ bản của một ứng dụng Android.
Manifests: Chứa file AndroidManifest.xml cấu hình của ứng dụng.
Java: chứa toàn bộ code backend của ứng dụng
Res: chứ toàn bộ các thành phần frontend của ứng dụng
- Drawable: chứa các thành phần như hình ảnh, background của ứng dụng
- Layout: chứa các giao diện xml của ứng dụng.
- Mipmap: chứa các icon của ứng dụng
- Values: chứa các giá trị mặc định dùng chung cho toàn bộ hệ thống.
- Menu: chứa các menu của của ứng dụng …v.v…
Vòng đời của một ứng dụng android
– Thông thường trong một ứng dụng (Application) sẽ có một hoặc nhiều activity
Mỗi Activity trong ứng dụng Android có một vòng đời độc lập, khác biệt hoàn toàn với các Activity khác Việc nắm vững vòng đời của Activity là rất quan trọng để xử lý thông tin một cách hiệu quả.
– Mỗi một Activity muốn được triệu gọi trong ứng dụng thì bắt buộc nó phải được khai báo trong AndroidManifest.xml
– Tương tự như các ngôn ngữ lập trình khác, Activity Stack hoạt động theo cơ chế LIFO (LAST IN FIRST OUT)
Mỗi khi một Activity mới được mở, nó sẽ xuất hiện trên Activity cũ Để quay lại Activity trước đó, bạn chỉ cần nhấn nút “Back” hoặc sử dụng lệnh tương ứng Tuy nhiên, nếu bạn nhấn nút Home, bạn sẽ không thể sử dụng nút “Back” để trở lại màn hình trước đó.
Có hai cách để mở Activity mới trong ứng dụng: Thứ nhất, mở Activity mới che khuất hoàn toàn Activity cũ, dẫn đến việc Activity cũ trải qua các sự kiện onPause và onStop Thứ hai, mở Activity mới che khuất một phần Activity cũ, trong trường hợp này chỉ xảy ra sự kiện onPause đối với Activity cũ.
Khi trở lại Activity cũ, sau khi thực hiện các hàm cần thiết, việc gọi hàm onResume là rất quan trọng để phục hồi lại trạng thái của ứng dụng.
– Như vậy ta thường lưu lại trạng thái của ứng dụng trong sự kiện onPause và đọc lại trạng thái ứng dụng trong sự kiện onResume
–Task là khả năng thực hiện một công việc nào đó giữa các Ứng dụng với nhau, cụ thể là các Activity
Chương trình quản lý BlackList cho phép người dùng mở danh bạ để thêm số điện thoại vào danh sách đen Khi thực hiện thao tác này, chương trình sẽ gọi Activity của ứng dụng danh bạ và sau khi hoàn tất, nó sẽ trở về ứng dụng BlackList Lưu ý rằng hai ứng dụng này hoàn toàn không liên quan đến nhau.
Với mỗi Activity thường vòng đời có 3 trạng thái sau:
3- Stopped (dừng – không phải Destroyed)
1 - Running (đang kích hoạt): Khi màn hình là Foreground ( Activity nằm trên cùng ứng dụng và cho phép người sử dụng tương tác)
Trong trạng thái "Paused" (tạm dừng), hoạt động bị mất tập trung nhưng vẫn có thể nhìn thấy Ví dụ, khi mở một hoạt động mới dưới dạng Dialog, trạng thái này vẫn có thể bị hệ thống tự động xử lý nếu bộ nhớ trở nên quá ít.
Hoạt động có thể bị dừng lại mà không bị tiêu diệt, thường xảy ra khi người dùng mất tập trung hoặc không thể nhìn thấy hoạt động đang diễn ra, chẳng hạn như khi mở một hoạt động mới chiếm toàn bộ màn hình Trong những tình huống này, hệ thống có thể can thiệp và xử lý theo cách phù hợp.
Như vậy cả Paused hay Stopped đều có khả năng bị Destroyed (hủy) khi bộ nhớ cần cho việc khác ưu tiên hơn.
– Trong vòng đời của ứng dụng Android cần phần biệt 2 loại sau:
– Visible Lifetime và Foreground Lifetime
Hoạt động diễn ra từ khi gọi onStart cho đến khi gọi onStop; trong khoảng thời gian này, màn hình Activity vẫn có thể hiển thị và tương tác nếu nó ở trạng thái foreground, nhưng sẽ không thể tương tác khi không ở trạng thái foreground, như đã được giải thích trước đó.
Trong khoảng thời gian từ khi gọi onResume cho đến khi gọi onPause, Activity luôn hiển thị ở vị trí ưu tiên cao nhất, cho phép người dùng tương tác trực tiếp với nó.