Giáo trình mô đun Phát triển ứng dụng di động cơ bản (Nghề: Tin học ứng dụng - Trình độ: Trung cấp) - Trường CĐ Kinh tế - Kỹ thuật Bạc Liêu trình bày các bài học về: Cài đặt Android Studio; Phát triển ứng dụng di động, Xây dựng ứng dụng Android;... Mời các bạn cùng tham khảo giáo trình tại đây.
Chạy chương trình đầu tiên trong Kotlin
Trong nhiệm vụ này, bạn sẽ sử dụng trình soạn thảo trên một trang web để bắt đầu lập trình bằng ngôn ngữ Kotlin ngay lập tức.
Sử dụng trình soạn thảo mã có tính tương tác
Thay vì cài đặt phần mềm trên máy tính, bạn có thể sử dụng công cụ lập trình trực tuyến trên nền tảng web để tạo chương trình đầu tiên Truy cập https://developer.android.com/training/kotlinplayground trên trình duyệt để mở công cụ lập trình Kotlin Playground Công cụ này cho phép bạn viết mã và thử nghiệm Kotlin trực tiếp trên trình duyệt một cách dễ dàng và tiện lợi Đây là giải pháp tối ưu để bắt đầu học lập trình Android mà không cần cài đặt phần mềm phức tạp.
Bạn sẽ thấy một trang web có giao diện tương tự như hình ảnh màn hình dưới đây, với một trình soạn thảo mã nằm chính giữa trang Trình soạn thảo này chứa mã của chương trình mà bạn đang làm việc, giúp bạn dễ dàng chỉnh sửa và xem kết quả trực tiếp Việc sử dụng trình soạn thảo mã này là bước quan trọng trong quá trình lập trình, giúp tăng hiệu quả và chính xác khi viết mã nguồn Đây là công cụ lý tưởng cho các nhà phát triển muốn tối ưu hóa quá trình sáng tạo và kiểm tra mã nhanh chóng.
Chạy mã của chương trình
Quy trình chạy một chương trình không quá khác biệt so với việc sử dụng trình xử lý văn bản trên máy tính, nhưng điểm khác biệt chính là khi bạn chạy một ứng dụng để hoàn thành nhiệm vụ hoặc chơi trò chơi, bạn tập trung vào những kết quả mà chương trình mang lại mà không cần quan tâm đến mã nguồn đằng sau Trong lập trình, bạn sẽ làm việc trực tiếp với mã code đã tạo ra các chức năng kỳ diệu đó, giúp bạn hiểu rõ hơn về cách chương trình hoạt động.
Bạn có thể bắt đầu chạy chương trình bằng cách nhấp vào biểu tượng hình tam giác màu trắng hoặc xanh lục ở góc trên cùng bên phải của trình soạn thảo Khi thực hiện, kết quả sẽ hiển thị ở ngăn phía dưới cùng của màn hình Bạn sẽ thấy dòng chữ "Hello, world!" xuất hiện, chứng tỏ rằng chương trình đã in ra thông báo “xin chào thế giới” Đây là bước giới thiệu cơ bản về cách chạy và xem kết quả của chương trình "Hello, world" trên môi trường lập trình.
Biên dịch (compile) là quá trình chuyển mã của chương trình Kotlin sang dạng có thể thực thi được trên hệ thống Quá trình biên dịch thành công đồng nghĩa với việc không có lỗi nào trong mã gây cản trở việc chạy chương trình Trong trường hợp gặp sự cố, các lỗi sẽ hiển thị rõ ràng trong phần thông báo lỗi nằm ở phần dưới cùng của quá trình biên dịch.
Sửa đổi chương trình
Thay đổi mã Hello World (Xin chào thế giới)
Để thay đổi chương trình, bạn cần chỉnh sửa nội dung văn bản từ "Hello, world!" thành "Happy Birthday!" Sau đó, chạy lại chương trình bằng cách nhấp vào nút chạy màu xanh dương hoặc xanh lục ở phía trên cùng bên phải màn hình Kết quả, bạn sẽ thấy dòng chữ "Happy Birthday!" hiển thị ở phía dưới cùng của màn hình, như hình minh họa dưới đây.
Làm thế nào để thực hiện việc này? Có vẻ như sẽ cần rất nhiều mã để in một nội dung bất kỳ!
Nếu bạn muốn một người bạn viết "Hello, world!" ("Xin chào, thế giới!") trên một mảnh giấy, có nhiều ý nghĩa ngụ ý đằng sau hành động này Chỉ cần nói với họ một câu đơn giản để bắt đầu, như "hãy viết ra điều gì đó," cũng đủ để khơi gợi sự sáng tạo và truyền cảm hứng Đây là một ví dụ điển hình về cách thức truyền đạt ý tưởng dễ hiểu, giúp mở đầu các dự án hoặc hoạt động sáng tạo một cách hiệu quả.
Khi bạn yêu cầu viết "‘Hello world!" trên mảnh giấy này", người đọc sẽ dễ dàng hiểu nhầm hoặc giả định về các bước cần thiết mà bạn chưa đề cập đến Họ có thể nghĩ rằng bạn muốn sử dụng bút để viết câu đó bằng chữ cái, trong khi thực tế việc này còn liên quan đến các bước chuẩn bị và kỹ thuật khác Trong lập trình, máy tính không đưa ra các giả định về thao tác của người dùng, do đó bạn cần cung cấp lệnh chính xác, rõ ràng và đầy đủ, bao gồm tất cả các bước cần thiết để đạt được mục tiêu Điều này nhấn mạnh tầm quan trọng của việc trình bày hướng dẫn rõ ràng khi giao tiếp với máy tính hoặc trong viết lách hướng dẫn kỹ thuật.
Học lập trình giống như học một ngôn ngữ mới, đòi hỏi bạn làm quen với cú pháp, chính tả, ký hiệu riêng và từ vựng chuyên ngành Dù có những thách thức tương tự như việc học ngữ pháp và bảng chữ cái mới trong tiếng Anh, quá trình học lập trình thường ít phức tạp hơn và dựa trên các quy tắc logic rõ ràng Chính vì vậy, việc làm quen với ngôn ngữ lập trình sẽ dễ dàng hơn so với việc học một ngôn ngữ tự nhiên mới.
Trong ngôn ngữ lập trình Kotlin, từ khóa "fun" là viết tắt của "hàm" (function), đóng vai trò là một phần quan trọng trong xây dựng chương trình Hàm (function) là một đoạn mã được định nghĩa để thực hiện một nhiệm vụ cụ thể, giúp tối ưu hoá và tái sử dụng code hiệu quả trong quá trình lập trình Kotlin.
Khi học lập trình bằng Kotlin, bạn cần chú ý đến các từ khóa và từ dành riêng có ý nghĩa đặc biệt trong ngôn ngữ này Những từ này thường mang ý nghĩa rõ ràng và cụ thể, giúp xác định cú pháp và chức năng của mã nguồn Hiểu rõ các từ khóa của Kotlin sẽ giúp bạn viết mã chính xác và tối ưu hơn trong quá trình phát triển phần mềm.
Trong lập trình Kotlin, hàm chính có tên là "main" — tên gọi này giúp bạn dễ dàng phân biệt và xác định hàm quan trọng nhất trong chương trình Hàm main là hàm đầu tiên (hoặc hàm chính) được gọi khi bạn chạy chương trình, đóng vai trò là điểm khởi đầu để thực thi các lệnh trong ứng dụng Kotlin của bạn Chính vì vậy, mọi chương trình Kotlin đều bắt buộc phải có hàm main để đảm bảo hoạt động đúng quy trình và cấu trúc của ngôn ngữ.
Tên hàm luôn đứng trước hai dấu ngoặc đơn().
Trong lập trình, bên trong dấu ngoặc đơn của hàm, bạn có thể đưa vào các thông tin cần thiết để sử dụng, gọi là "argument" (đối số) hoặc "args" viết tắt Đối số giúp truyền dữ liệu vào hàm, là yếu tố quan trọng để hàm thực thi chính xác và linh hoạt hơn trong quá trình lập trình Việc hiểu rõ cách sử dụng đối số sẽ giúp bạn viết mã nguồn hiệu quả và tối ưu hơn trong các dự án của mình.
Trong lập trình, chú ý đến cặp dấu ngoặc nhọn {} sau dấu ngoặc đơn là rất quan trọng Bên trong một hàm, các mã lệnh sẽ thực hiện các nhiệm vụ cụ thể Những dấu ngoặc nhọn này chứa các dòng mã đó, giúp phân tách rõ ràng các khối lệnh và đảm bảo chức năng của hàm hoạt động chính xác.
Dòng mã này in văn bảnHappy Birthday!.
printlnyêu cầu hệ thống in một dòng văn bản.
Bạn đưa văn bản cần in vào bên trong dấu ngoặc đơn.
Văn bản cần được in sẽ nằm trong dấu ngoặc kép để hệ thống nhận biết rõ nội dung cần in chính xác Để đảm bảo việc in văn bản diễn ra đúng cách, toàn bộ lệnh println phải được đặt bên trong hàm main Lưu ý rằng mọi nội dung nằm trong dấu ngoặc kép sẽ được in theo đúng nội dung đã thiết lập, giúp chương trình vận hành chính xác và tránh lỗi.
Vậy là xong Chương trình Kotlin nhỏ nhất.
Mở rộng chương trình
Bạn đã thành công khi in một dòng văn bản bằng hàm println(), nhưng bạn có thể mở rộng để đưa nhiều dòng lệnh vào trong một hàm tùy thích nhằm thực hiện nhiều nhiệm vụ hơn Để làm điều này, sao chép dòng println("Happy Birthday!") và dán hai lần dưới dòng đó, đảm bảo các dòng đã dán nằm trong dấu ngoặc nhọn của hàm main Bạn có thể thay đổi nội dung in ra thành tên của một người, ví dụ như "Jhansi", và chỉnh sửa phần còn lại để in ra câu chúc "Bạn sang 25 tuổi rồi!" Bằng cách này, bạn sẽ tạo ra các đoạn mã ngắn gọn, rõ ràng, phù hợp với quy tắc SEO về lập trình Java.
Mã của bạn sẽ trông giống như mã dưới đây.
Bạn mong đợi mã này sẽ thực thi chức năng như thế nào khi chạy? Hãy chạy chương trình để xem kết quả minh chứng rõ ràng, sau đó chuyển đến ngăn kết quả để quan sát ba dòng in ra trong cửa sổ bảng điều khiển, giúp bạn dễ dàng kiểm tra và xác nhận kết quả chính xác.
Trong quá trình lập trình, gặp lỗi là điều bình thường và các công cụ thường cung cấp phản hồi giúp bạn sửa lỗi hiệu quả Để hiểu rõ hơn, hãy thử tạo lỗi bằng cách xoá dấu ngoặc kép chứa văn bản "Jhansi" trong chương trình của bạn, sau đó chạy thử để quan sát kết quả Khi thực hiện, hệ thống sẽ hiển thị thông báo lỗi "Unresolved reference: Jhansi" cùng biểu tượng cảnh báo, cho biết lỗi nằm ở dòng mã đó Thông báo này giúp bạn xác định chính xác vấn đề, ngay cả khi chưa rõ ý nghĩa của nó; trong trường hợp này, lỗi là do thiếu dấu ngoặc kép quanh văn bản trong lệnh println() Bạn chỉ cần thêm lại dấu ngoặc kép vào vị trí phù hợp, rồi chạy lại chương trình để đảm bảo nó hoạt động bình thường trở lại.
Xin chúc mừng bạn đã chạy thành công và thay đổi chương trình Kotlin đầu tiên của mình Đây là mã hoàn chỉnh của chương trình mà bạn đã thực hiện trong lớp học lập trình Kotlin này, đánh dấu bước khởi đầu quan trọng trong hành trình học lập trình của bạn.
Tóm tắt
https://developer.android.com/training/kotlinplayground là trình soạn thảo mã tương tác trên web nơi bạn có thể thực hành viết các chương trình Kotlin.
Mọi chương trình Kotlin đều phải có một hàmmain(): fun main() {}
Sử dụng hàm println()để in một dòng văn bản.
Đưa văn bản bạn muốn in vào dấu ngoặc kép Ví dụ:"Hello".
Lặp lại lệnhprintln()để in nhiều dòng văn bản.
Lỗi được đánh dấu màu đỏ trong chương trình giúp người dùng dễ dàng xác định vị trí lỗi Thông báo lỗi xuất hiện trong ngăn kết quả, cung cấp thông tin rõ ràng về nguyên nhân gây ra lỗi, hỗ trợ quá trình sửa chữa và xử lý sự cố hiệu quả hơn.
Khi thay đổi lệnh `println()` thành `print()`, chương trình sẽ không tự xuống dòng sau mỗi câu lệnh Điều này có nghĩa là các thông báo sẽ xuất hiện trên cùng một dòng liên tiếp, gây khó đọc và hiểu nội dung Để cải thiện khả năng hiển thị của chương trình, bạn cần sửa văn bản sao cho mỗi phần của thông báo đều nằm trên một dòng riêng, giúp quá trình theo dõi và gỡ lỗi trở nên dễ dàng hơn.
Gợi ý: Sử dụng \n bên trong văn bản để thêm dấu ngắt dòng Ví dụ: "line \n break".
Tạo lời chúc mừng sinh nhật
To get started, open your browser and navigate to https://developer.android.com/training/kotlinplayground, which provides an online Kotlin programming environment Inside the main() function, replace the default greeting "Hello, world!" with "Happy Birthday, Rover!" to personalize your code Additionally, within the same block, add two more lines to print messages: "You are already 5!" and "5 is the very best age to celebrate!", making your program more engaging and meaningful.
Mã hoàn thiện của bạn sẽ có dạng như sau.
Thêm chiếc bánh sinh nhật
Lời chúc sinh nhật nên đi kèm với hình ảnh chủ đề sinh nhật, tiêu biểu là một chiếc bánh kem ngon lành Bạn có thể thêm hình ảnh bánh sinh nhật vào lời chúc bằng cách sử dụng các ký tự và chữ cái trên bàn phím để tạo ra hình ảnh thú vị, hoặc sử dụng lệnh println() để in ra các dòng chữ trang trí Việc kết hợp hình ảnh và lời chúc sinh nhật sáng tạo giúp truyền đạt những lời chúc ý nghĩa, chân thành và hấp dẫn hơn cho người nhận.
Để nâng cao mã của bạn, hãy thêm các dòng in thể hiện chiếc bánh giữa hai câu lệnh println() cho "Happy Birthday" và "You are already 5", giúp mã trở nên sinh động hơn Bạn cũng nên chèn nhận xét (comment) trước các dòng in này để giúp người khác hiểu rõ hơn về chức năng của mã, đồng thời dễ dàng bảo trì về sau Cụ thể, thêm nhận xét "// Let's print a cake!" trước khi in chiếc bánh và "// This prints an empty line." trước dòng in ra dòng trống cuối cùng, nhằm làm rõ từng phần của mã và ý nghĩa của chúng Việc này không ảnh hưởng đến kết quả in ấn khi chạy mã, vì các nhận xét chỉ dành cho các nhà phát triển, không ảnh hưởng đến chương trình.
Mã của bạn phải trông giống như đoạn mã dưới đây.
Bạn có thể nhận thấy rằng chúng tôi đã thêm một số dòng trống vào mã để phân tách các phần, giúp mã dễ đọc hơn Việc này là mẹo nhỏ hữu ích để cải thiện khả năng đọc và chỉnh sửa mã nguồn Bạn hoàn toàn có thể thêm các dòng trống ở bất cứ đâu trong mã nếu cảm thấy cần thiết để làm rõ các phần code Sau khi chạy mã, đầu ra sẽ có dạng như mong đợi, dễ dàng kiểm tra và phân tích dữ liệu.
Tạo và sử dụng biến
Lưu trữ tuổi của Rover trong một biến i Trong đoạn mã mà bạn vừa hoàn thành, hãy chú ý đến cách bạn lặp lại cùng một số tuổi hai lần.
Thay vì lặp lại cùng một giá trị nhiều lần, bạn có thể lưu trữ số đó dưới dạng biến, giúp dễ dàng quản lý và chỉnh sửa Việc đặt tên cho biến giống như để vào một hộp chứa số, sau đó có thể sử dụng tên của hộp này ở bất kỳ đâu trong chương trình khi cần giá trị đó Khi tuổi thay đổi, bạn chỉ cần cập nhật giá trị của biến tại một chỗ duy nhất, và tất cả các nơi sử dụng biến sẽ tự động hiển thị giá trị mới Trong chương trình, bạn nên khai báo biến ‘agev’ với giá trị là 5 tại dòng mã đầu tiên trong hàm main(), trước các câu lệnh in ra màn hình để đảm bảo biến được khởi tạo đúng trước khi sử dụng.
Dòng này có nghĩa là:
val là một từ đặc biệt mà Kotlin sử dụng, được gọi là keyword (từ khoá), cho biết rằng phần phía sau là tên của một biến.
Trong lập trình Kotlin, dấu bằng được dùng để gán giá trị cho biến, khác với ý nghĩa của dấu bằng trong toán học Để in giá trị của biến trong câu lệnh, bạn cần bao quanh biến bằng dấu ngoặc nhọn sau ký hiệu đô la, giúp hệ thống phân biệt giữa văn bản và biến Bạn có thể thay số trong câu lệnh in bằng biến, sau đó chạy mã để thấy kết quả đồng bộ, rồi thay đổi giá trị của biến để tính tuổi theo ngày bằng cách nhân tuổi với 365, phù hợp với trường hợp bỏ qua năm nhuận Khi chỉnh sửa mã, bạn cũng nên cập nhật nội dung thông điệp in ra để phù hợp với cách tính mới, chẳng hạn như điều chỉnh lời chúc để phản ánh độ tuổi tính theo ngày.
Đặt văn bản vào một biến
Bạn có thể chèn cả văn bản vào biến để làm cho mã của bạn linh hoạt hơn Đặc biệt, ngoài việc lưu trữ số, bạn còn có thể lưu trữ văn bản vào biến, chẳng hạn như thêm biến tên là name dưới biến age để lưu tên người có sinh nhật, ví dụ như "Rover" Sau đó, bạn có thể thay thế tên "Rover" trong lời chúc sinh nhật bằng chính biến này, giúp mã của bạn dễ dàng tùy biến và mở rộng hơn Điều này giúp tối ưu hóa quy trình lập trình, nâng cao hiệu quả cho các dự án liên quan đến gửi lời chúc hoặc xử lý dữ liệu cá nhân.
Bạn có thể sử dụng nhiều biến trong cùng một câu lệnh in để hiển thị thông tin đa dạng Thêm Rover vào lời chúc mừng về độ tuổi bằng cách sử dụng biến name, giúp câu chúc trở nên sinh động và cá nhân hóa hơn Điều này giúp nâng cao hiệu quả truyền đạt và tối ưu hóa cho các mục tiêu SEO, làm cho nội dung trở nên thu hút và dễ dàng tiếp cận hơn với người đọc.
Mã đã hoàn tất của bạn sẽ trông giống như thế này.
Chúc mừng! Bạn đã có thể tạo thông điệp bằng văn bản, sử dụng ký hiệu để tạo hình ảnh, lưu trữ dữ liệu số và văn bản bằng biến, cũng như sử dụng biến để in ra nội dung mong muốn.
In biểu ngữ sinh nhật có đường viền
Trong nhiệm vụ này, bạn sẽ học cách tạo một biểu ngữ sinh nhật hấp dẫn, đồng thời khám phá các kỹ thuật tối ưu hoá mã như lặp lại và tái sử dụng mã để đơn giản hóa quy trình lập trình Các kỹ thuật này giúp nâng cao hiệu quả làm việc và giảm thiểu lỗi, đồng thời mang lại sự linh hoạt trong việc chỉnh sửa và phát triển các biểu ngữ phù hợp với nhiều mục đích khác nhau Áp dụng các phương pháp này sẽ giúp bạn hiểu rõ hơn về tác dụng của việc tối ưu hoá mã trong quá trình xây dựng dự án.
Để tạo biểu ngữ sinh nhật ban đầu trong Android Studio, bạn cần đặt con trỏ vào bất kỳ vị trí nào trong mã code tại https://developer.android.com/training/kotlinplayground, sau đó nhấn chuột phải và chọn "Select All" để chọn toàn bộ mã Tiếp theo, nhấn phím Backspace hoặc Delete để xóa tất cả mã hiện có Cuối cùng, chạy chương trình của bạn để xem biểu ngữ in ra trên Console (Bảng điều khiển), đảm bảo quá trình tạo biểu ngữ sinh nhật diễn ra thành công và dễ dàng kiểm tra kết quả.
Tạo một hàm để in đường viền
Mã bạn đã dán và chạy là một hàm tên là main() chứa ba câu lệnh in, thể hiện các lệnh hiển thị nội dung trên màn hình Khi nhấn nút Run (Chạy), hệ thống sẽ thực thi hàm main() cùng toàn bộ mã bên trong để hiển thị kết quả mong muốn Điều này giúp người học dễ dàng kiểm tra và hiểu rõ cách hoạt động của chương trình trong lập trình.
Trong một lớp học lập trình trước, bạn đã biết rằng:
Hàm là một phần của chương trình và thực hiện một tác vụ cụ thể.
Từ khoá fun đánh dấu một số mã là một hàm.
Sau từ khoá fun lần lượt là tên hàm, các dấu ngoặc đơn để nhập tuỳ chọn vào hàm (đối số) và các dấu ngoặc nhọn.
Mã để in văn bản luôn ở bên trong các dấu ngoặc nhọn đó.
Chương trình Kotlin của bạn bắt buộc phải có hàm main() để chạy Ngoài ra, việc tạo và sử dụng các hàm riêng giúp tránh lặp lại mã và làm mã dễ đọc hơn Bạn có thể tạo một hàm để in các đường viền giống nhau ở phần đầu và cuối của biểu ngữ, giúp tối ưu hóa mã và dễ bảo trì Trong trình chỉnh sửa, hãy chèn một dòng trống bên dưới hàm main() để tạo không gian làm việc, giúp sắp xếp mã rõ ràng Để tạo hàm mới, bắt đầu bằng từ khoá fun, theo sau là tên hàm (ví dụ: printBorder), rồi là cặp dấu ngoặc đơn và ngoặc nhọn, giúp tái sử dụng mã in đường viền một cách dễ dàng và hiệu quả hơn.
Vài lời về việc đặt tên cho hàm.
Trong lập trình Python, tên hàm thường bắt đầu bằng chữ thường và là một động từ mô tả rõ chức năng của hàm đó, ví dụ như print() hoặc printBorder() Việc đặt tên hàm theo quy tắc này giúp mã nguồn dễ đọc và duy trì hơn Đặc biệt, hàm printBorder nên được đặt tên bắt đầu bằng chữ thường và phản ánh chức năng in khung hoặc border trong chương trình Tuân thủ quy tắc đặt tên hàm này là một phần quan trọng để viết mã rõ ràng, chuyên nghiệp và phù hợp với các chuẩn lập trình Python.
Trong lập trình, cần chú ý rằng từ thứ hai trong tên hàm bắt đầu bằng chữ hoa, tạo thành kiểu đặt tên gọi là "kiểu lạc đà" (camel-case), giúp tên hàm dễ đọc hơn Ví dụ về các tên hàm theo kiểu này bao gồm drawReallyCoolFancyBorder và printBirthdayMessage, góp phần cải thiện khả năng hiểu và duy trì mã nguồn.
Việc đặt tên hàm theo "quy ước lập trình" là một thỏa thuận chung giữa các nhà phát triển để đảm bảo mã nguồn dễ đọc và nhất quán, giúp dễ dàng hiểu và chỉnh sửa mã của người khác Bạn có thể tham khảo hướng dẫn định kiểu chính thức tại https://developer.android.com/kotlin/style-guide để biết thêm chi tiết về quy ước định dạng mã Khi viết hàm, nên đặt dấu đóng ngoặc nhọn } trên một dòng riêng, có thêm một dòng trống giữa các dấu ngoặc để tạo khoảng trống cho việc mở rộng mã và dễ theo dõi điểm kết thúc của hàm Trong hàm main(), hãy sao chép câu lệnh in của đường viền rồi dán vào giữa các dấu ngoặc của hàm printBorder() để giữ sự nhất quán trong thực hiện mã.
Hàm printBorder() đã được hoàn chỉnh và có dạng thức rõ ràng để sử dụng trong mã của bạn Để gọi hàm này, bạn chỉ cần sử dụng tên hàm kèm theo cặp dấu ngoặc đơn, giống như cách bạn đã sử dụng với println() Trong hàm main(), hãy thay thế các dòng mã in đường viền cũ bằng các lệnh gọi đến hàm printBorder() để đảm bảo mã của bạn hoạt động chính xác Cuối cùng, chạy thử mã của bạn để xác nhận rằng tất cả hoạt động như mong đợi, giúp đảm bảo tính hiệu quả và tối ưu của chương trình.
Refactoring, hay còn gọi là tái cấu trúc, là quá trình thay đổi mã nguồn để cải thiện cấu trúc và hiệu suất của chương trình mà không làm thay đổi đầu ra Việc này giúp mã nguồn trở nên rõ ràng hơn, dễ bảo trì và nâng cao hiệu quả làm việc của phần mềm Thực hiện refactoring là một bước quan trọng trong quá trình phát triển phần mềm, giúp tối ưu hóa mã nguồn để đạt hiệu suất tốt hơn và dễ dàng mở rộng trong tương lai.
Lặp lại mẫu hoa văn đường viền
Hãy chú ý vào đường viền, toàn bộ ký hiệu đều giống nhau, cho thấy đây là cùng một ký hiệu lặp lại nhiều lần Thay vì nói "In chuỗi gồm 23 ký hiệu này", bạn có thể nói "In ký hiệu này 23 lần", giúp câu văn ngắn gọn, súc tích hơn Việc nhận biết ký hiệu lặp lại là bước quan trọng trong phân tích mã hóa hoặc mã hóa ký tự, giúp tăng hiệu quả xử lý dữ liệu và tối ưu hóa các câu lệnh liên quan Điều này cũng giúp cải thiện khả năng đọc hiểu, tối ưu hóa SEO khi mô tả các kỹ thuật liên quan đến mã hóa ký tự trong bài viết.
Sau đây là mã Bạn hiện có một lệnh đơn để in dấu bằng và để lặp lại 23 lần lệnh đó, hãy sử dụng câu lệnhrepeat().
Câu lệnh repeat() bắt đầu bằng từ khóa "repeat" theo sau là dấu ngoặc () Đây là loại câu lệnh gọi là "vòng lặp" ("loop") vì cho phép lặp đi lặp lại một đoạn mã nhiều lần theo vòng lặp Trong lập trình, vòng lặp giúp tự động thực thi mã nhiều lần, tiết kiệm thời gian và công sức Sau này, bạn sẽ còn tìm hiểu các cách tạo vòng lặp khác để nâng cao kỹ năng lập trình.
Trong ngoặc đơn, ()là số lần lặp lại,
tiếp theo là các dấu ngoặc nhọn{},
Trong hàm printBorder(), sau dấu đóng ngoặc nhọn } của câu lệnh repeat(), hãy thêm câu lệnh println() để in một dòng mới, giúp đảm bảo đường viền được hiển thị rõ ràng và rõ ràng hơn Chú ý lặp lại mã { {} } trong đoạn mã để duy trì tính nhất quán, đồng thời tăng tính thẩm mỹ và dễ đọc của chương trình Việc quản lý đúng vị trí của lệnh println() sau khi kết thúc vòng lặp sẽ giúp tạo ra các đường viền rõ ràng, góp phần nâng cao hiệu quả hiển thị của nội dung.
Mã của bạn bây giờ có dạng như sau.
Trong hàm main(), mã không thay đổi, và toàn bộ chương trình duy trì cấu trúc ban đầu Khi chạy mã, nội dung xuất ra vẫn giống như trước, nhưng lần này bạn đã có thể tạo đường viền bằng cách chỉ định ký hiệu "=" chỉ một lần, giúp tiết kiệm thời gian và nâng cao hiệu quả khi định dạng nội dung.
Dùng đối số để thay đổi đường viền
Nếu bạn muốn tạo đường viền sử dụng nhiều loại ký hiệu, chẳng hạn như các ký hiệu dưới đây thì sao?
Bạn có thể định nghĩa hàm cho từng ký hiệu riêng biệt, nhưng một cách hiệu quả hơn là tận dụng lại hàm đã viết và nâng cao tính linh hoạt của nó để xử lý nhiều loại ký hiệu khác nhau Viết hàm linh hoạt giúp tối ưu hóa quy trình lập trình và tiết kiệm thời gian trong việc xử lý các ký hiệu đa dạng Áp dụng kỹ thuật này sẽ giúp bạn dễ dàng mở rộng chương trình và nâng cao khả năng tùy biến trong các dự án của mình.
Bạn có thể cung cấp đối số làm đầu vào cho các hàm để tạo sự linh hoạt trong lập trình Trong một lớp học lập trình, bạn đã quen với khái niệm này khi làm việc với hàm main() và hàm printBorder() Để hàm printBorder() có thể in ra các mẫu đường viền khác nhau, bạn cần thêm một đối số vào hàm Trong hàm main(), bạn tạo biến tên là border để lưu mẫu hoa văn đường viền, giúp dễ dàng tùy chỉnh và lặp lại Sau đó, bạn truyền biến border vào làm đối số cho cả hai lệnh gọi hàm printBorder() bằng cách đặt biến trong dấu ngoặc đơn tương tự như khi truyền đối số cho hàm println().
Hàmmain()của bạn phải trông giống như đoạn mã dưới đây.
Tạo một chiếc bánh với nhiều lớp và nến
Trong nhiệm vụ này, bạn sẽ nâng cấp mã bánh sinh nhật để luôn có kích thước phù hợp với số lượng nến cho mọi độ tuổi.
Bạn sẽ tạo tổng cộng 3 hàm để vẽ một chiếc bánh nhiều lớp (layer) với nhiều nến (candle).
Bạn sẽ dùng repeat() bên trong một repeat() khác, tạo nên một khái niệm được gọi là "vòng lặp lồng nhau" (nested loop).
Cách xây dựng mã tăng dần là phương pháp áp dụng cho mọi chương trình, bắt đầu bằng việc tạo ra một bức tranh tổng thể sau đó thêm các chi tiết từng bước một Phương pháp này gọi là "phát triển từ trên xuống" (top-down development), giúp lập trình viên quản lý tốt cấu trúc chương trình và tối ưu quá trình phát triển phần mềm.
Hướng dẫn này sẽ không nêu rõ chi tiết về phương pháp này Bạn có thể tham khảo mã hoàn thiện nếu gặp khó khăn.
Sau đây là hình ảnh của chiếc bánh mà bạn sẽ cho ra lò:
Và sau đây là hướng dẫn.
Hãy tạo hàm main() và đặt mã của bạn trong trình soạn thảo thành chương trình "Hello, world!" Bạn có thể bỏ đối số trong hàm main() vì không sử dụng chúng Trong main(), tạo biến "age" rồi gán giá trị 24 cho biến đó Tiếp theo, tạo biến "layers" và đặt giá trị 5 cho biến này Gọi hàm printCakeCandles() rồi truyền "age" vào để in nến bánh sinh nhật, nhưng lưu ý rằng hàm này chưa được tạo, nên sẽ gặp lỗi Tương tự, gọi hàm printCakeTop() và truyền "age" vào, cũng gây lỗi nếu hàm chưa có Cuối cùng, gọi hàm printCakeBottom() và truyền "age" cùng biến "layers" vào, nhưng để tránh lỗi, hãy nhận xét các dòng gọi hàm này bằng cách thêm // ở đầu mỗi dòng Sau đó, chạy chương trình, và kết quả sẽ là chương trình không gặp lỗi và không thực thi gì.
Hàmmain()của bạn phải trông giống như đoạn mã dưới đây.
Hàm `printCakeTop()` in phần trên của chiếc bánh, sử dụng dòng dấu bằng để tạo ra phần trang trí trên cùng của chiếc bánh, tương tự như hàm `printBorder()` đã từng tạo trong lớp học lập trình Để mở rộng chức năng, bạn cần thêm một dòng trống sau dòng cuối của hàm `main()`, rồi định nghĩa hàm mới `printCakeTop()` có một đối số kiểu `int` tên là `age` Trong hàm này, sử dụng câu lệnh `repeat()` để in `=` số lần bằng `age + 2`, giúp phần trang trí cân đối và không bị lệch khỏi cạnh bánh Sau khi vòng lặp hoàn tất, hãy in một dòng trống để ngăn cách phần in ra Trong hàm `main()`, bạn cần xóa bỏ hai ký hiệu `//` ở đầu dòng của phần mã dành cho `printCakeTop()`, vì hàm này đã tồn tại và sẵn sàng sử dụng Cuối cùng, chạy mã để xem phần trên của chiếc bánh được in ra chính xác theo ý muốn.
Mỗi cây nến được tạo thành từ hai ký hiệu: dấu phẩy (,) tạo hình ngọn lửa và đường kẻ dọc (|) tạo hình thân nến.
Để hoàn thành việc này trong một hàm, bạn cần đặt hai câu lệnh repeat() tương ứng cho ngọn lửa và phần thân nến vào hàm riêng của bạn Đầu tiên, bên dưới hàm main() và hàm printCakeTop(), tạo một hàm mới tên là printCakeCandles() với một đối số là age kiểu Int, nhằm kiểm soát số lượng nến trên bánh Trong hàm này, sử dụng câu lệnh repeat() để in dấu phẩy tượng trưng cho ngọn lửa của nến, lặp lại theo số tuổi (age) Tiếp theo, in một dòng trống để tạo khoảng cách, rồi thêm câu lệnh in để in một khoảng trống phía dưới để đặt nến Sau đó, lặp lại các bước dùng repeat() để tạo phần thân nến bằng ký tự dọc |, kết thúc bằng một dòng mới được in ra bằng println() Trong hàm main(), cần loại bỏ các ký hiệu // trước dòng mã gọi hàm printCakeCandles() để dòng lệnh này hoạt động Cuối cùng, chạy mã để hiển thị phần trên của chiếc bánh cùng với những cây nến, giúp hình dung rõ ràng bánh sinh nhật với các ngọn lửa và thân nến.
Trong hàm này, bạn vẽ phần dưới cùng của chiếc bánh với chiều rộng bằngage + 2và bạn vẽ phần đó theo chiều cao của một số lớp nhất định.
Tức là hàm của bạn cần 2 đối số, một đối số cho chiều rộng (age) và một đối số cho chiều cao (layers).
Để in phần dưới cùng của chiếc bánh, bắt đầu bằng cách lặp lại ký hiệu "at" @age + 2 để tạo một lớp bánh mới Sau đó, tiếp tục thực hiện thao tác in để tạo các lớp bánh thêm, giúp bánh trở nên đa dạng và hấp dẫn hơn Việc lặp lại này giúp xây dựng cấu trúc bánh đều đặn và đầy đủ các lớp cần thiết.
Đầu tiên, bạn cần vẽ ký hiệu "at" (@) theo tuổi cộng 2 lần để tạo lớp bánh i Tiếp theo, trong hàm printCakeBottom(), nhận hai đối số là age và layers, đều có kiểu số nguyên (Int) Trong hàm này, sử dụng câu lệnh repeat() để in từng lớp bánh gồm các ký hiệu "at" (@) theo số lần bằng tuổi cộng 2 lần Cuối cùng, in một dòng trống để hoàn tất phần in mô phỏng lớp bánh, theo đúng yêu cầu của đề bài.
Các câu lệnh lồng nhau trong hàm repeat() cho phép in nhiều lớp giống hệt nhau của chiếc bánh, ví dụ như lặp lại ký hiệu '@' 12 lần cho mỗi lớp Cụ thể, để tạo các lớp khác nhau, bạn có thể sử dụng lặp lại ký hiệu này nhiều lần, như lớp 1, lớp 2 và lớp 3, mỗi lớp đều in ký hiệu '@' 12 lần để tạo ra hình dạng bánh tròn đều đặn Sử dụng câu lệnh repeat() lồng nhau giúp dễ dàng tạo ra các cấu trúc phức tạp, nhiều lớp, theo kiểu dáng mong muốn một cách chính xác và sinh động.
Hoặc bạn có thể nói ngắn gọn hơn như sau:
Lặp lại trong cả 3 lớp:
Lặp lại ký hiệu 12 lần.
Bạn có thể dễ dàng thực hiện nhiều tác vụ bằng cách sử dụng câu lệnh repeat() trong lập trình Việc nhúng một câu lệnh repeat() vào trong một câu lệnh repeat() khác giúp tạo các vòng lặp lồng nhau, cho phép in ký hiệu theo số lần nhất định cho các lớp dữ liệu khác nhau Điều này giúp tối ưu hóa quá trình lặp lại và nâng cao khả năng tùy biến trong lập trình của bạn.
Sử dụng hàm repeat() lồng nhau để in các lớp bánh, giúp tạo thành hình dạng bánh hoàn chỉnh một cách dễ dàng Đặt câu lệnh repeat() thứ hai bao quanh toàn bộ mã bên trong hàm để lặp lại quá trình xây dựng các lớp bánh nhiều lần, theo số lần mong muốn Trong hàm chính (main()), chỉ cần xóa hai ký tự // khỏi dòng mã để kích hoạt hàm printCakeBottom(), giúp hiển thị phần dưới của chiếc bánh Sau đó, chạy mã để xem toàn bộ hình dạng chiếc bánh đã hoàn chỉnh với các lớp and chi tiết được in ra rõ ràng.
Xin chúc mừng bạn đã hoàn thành thành công một chương trình phức tạp gồm nhiều hàm và câu lệnh lồng nhau, đảm bảo rằng chiếc bánh của bạn luôn có số lượng nến chính xác theo yêu cầu Thành tựu này thể hiện khả năng lập trình và xử lý logic của bạn trong việc xây dựng các chương trình phức tạp hơn Việc hoàn thành chương trình này không chỉ giúp bạn nâng cao kỹ năng lập trình mà còn mở rộng khả năng sáng tạo trong việc giải quyết các vấn đề kỹ thuật.
Kết quả đầu ra hoàn thiện của chương trình của bạn sẽ như sau:
Mã giải pháp
Nếu công cụ lập trình Kotlin trên trình duyệt không thực thi mã của bạn hoặc báo lỗi không rõ nguyên nhân, bạn có thể thử các phương pháp khắc phục như kiểm tra lại cú pháp mã, làm mới trình duyệt hoặc thử sử dụng trình duyệt khác để xác định sự cố Đảm bảo rằng internet của bạn ổn định và công cụ trực tuyến không bị gián đoạn cũng là các bước quan trọng để xử lý sự cố hiệu quả.
Tải lại trang bằng cách sử dụngShift+Reload(Shift+Tải lại).
Đợi một lát, sau đó thử lại.
Sử dụng ${} để bao quanh các biến và phép tính trong phần văn bản của các câu lệnh in Ví dụ: ${age}, trong đóagelà một biến.
Trong lập trình, bạn tạo biến bằng cách sử dụng từ khoá val cùng với tên biến, và sau khi khai báo, giá trị của biến này không thể thay đổi Để gán một giá trị cho biến, bạn sử dụng phép gán với dấu bằng, chẳng hạn như gán giá trị văn bản hoặc số cho biến đó Việc này giúp quản lý dữ liệu hiệu quả và đảm bảo tính ổn định của biến trong quá trình lập trình.
Stringlà văn bản có dấu ngoặc kép bao quanh, chẳng hạn như"Hello".
Intlà một số nguyên dương hoặc âm, chẳng hạn như 0, 23 hoặc -1024.
Bạn có thể truyền một hoặc nhiều đối số vào một hàm để hàm đó dùng được, ví dụ: fun printCakeBottom(age:Int, layers:Int) {}
Sử dụng câu lệnh repeat() {} để lặp lại một tập hợp lệnh theo một số lần Ví dụ: repeat (23) { print("%") }hoặc repeat (layers) { print("@@@@@@@@@@") }
Vòng lặp (loop) là một lệnh lặp lại nhiều lần Câu lệnh repeat() là một ví dụ về vòng lặp.
Bạn có thể lồng các vòng lặp, tức là đặt vòng lặp trong vòng lặp để tạo ra các mẫu phức tạp hơn Ví dụ, bạn có thể sử dụng câu lệnh repeat() trong một vòng lặp repeat() khác để in một ký hiệu nhiều lần cho một số hàng, giúp tạo các hình dạng giống như lớp bánh xếp chồng Việc lồng vòng lặp giúp tăng tính linh hoạt và sáng tạo trong lập trình, phù hợp cho các bài tập in hình hoặc tạo mẫu mới mẻ.
Tóm tắt về việc sử dụng các đối số của hàm:Để sử dụng các đối số của hàm, bạn cần thực hiện 3 việc sau:
Thêm đối số và kiểu vào định nghĩa hàm:printBorder(border: String)
Sử dụng đối số bên trong hàm:println(border)
Cung cấp đối số khi bạn gọi hàm: printBorder(border)
Chương trình (program) là một tập hợp hướng dẫn đã xác định để yêu cầu máy tính của bạn thực hiện một số thao tác cụ thể Nó không phải chỉ đơn giản là một tác vụ hay một công cụ để viết mã Kotlin, mà là một loạt các hướng dẫn mà hệ thống máy tính thực thi để hoàn thành nhiệm vụ Chính nhờ chương trình, máy tính có thể hoạt động chính xác và hiệu quả theo yêu cầu của người dùng.
“Happy Birthday!” (“Chúc mừng sinh nhật!”)
Câu 2:Bạn sử dụng từ khoá nào để xác định một hàm trong Kotlin? a fun b func c function e main
Câu 3: Bạn cần làm điều nào sau đây để tạo một chương trình Kotlin có thể in một dòng văn bản?
Chương trình thường bắt đầu bằng hàm main(), là điểm khởi đầu trong lập trình Các lệnh trong chương trình cần được bao quanh bởi dấu ngoặc nhọn {} để xác định phạm vi mã lệnh Để hiển thị thông tin ra màn hình, ta sử dụng lệnh gọi đến hàm print() hoặc println() Ngoài ra, chương trình còn có thể sử dụng câu lệnh lặp lại (repeat()) để thực thi một tập hợp lệnh nhiều lần theo yêu cầu Tùy vào mục đích, người viết có thể chọn số lượng đáp án phù hợp để mô tả hoặc thể hiện chức năng của chương trình.
Câu hỏi này kiểm tra khả năng dự đoán kết quả của mã Kotlin dựa trên các tùy chọn in ra văn bản Tác dụng của mã Kotlin là in ra 2 dòng văn bản được phân tách bằng một dòng trống, giúp người đọc hiểu rõ cách hoạt động của câu lệnh in trong ngôn ngữ lập trình này Đáp án đúng là lựa chọn d, vì mã Kotlin sẽ in 2 dòng riêng biệt kèm dòng trống giữa chúng Bài viết tập trung vào phân tích khả năng in ấn của đoạn mã Kotlin, mang lại kiến thức quan trọng về cú pháp và cách xử lý đầu ra của ngôn ngữ lập trình này để tối ưu hóa nội dung cho SEO.
Để in ra bánh 6 lớp nhân dịp sinh nhật lần thứ 4 của ai đó, bạn cần sửa đổi hàm main() bằng cách đặt tuổi val thành 4 và các lớp val thành 6 Điều này phù hợp với mục đích của bài toán là thể hiện bánh có 6 lớp nhân dịp sinh nhật lần thứ 4 Lựa chọn đúng là câu c, giúp đảm bảo các giá trị đúng với yêu cầu đề bài.
Câu 6: Tuỳ chọn nào sau đây gọi hàm đúng cách rồi truyền đối số đầu vào hợp lệ?
Tóm tắt
Sử dụng ${} để bao quanh các biến và phép tính trong phần văn bản của các câu lệnh in Ví dụ: ${age}, trong đóagelà một biến.
Trong lập trình, bạn tạo biến bằng từ khoá val và đặt tên cho biến đó; sau khi đã định nghĩa, bạn không thể thay đổi giá trị của biến này Để gán giá trị cho biến, sử dụng toán tử dấu bằng, ví dụ như gán văn bản hoặc số vào biến đó Việc hiểu cách tạo và gán giá trị cho biến giúp bạn quản lý dữ liệu hiệu quả trong quá trình lập trình.
Stringlà văn bản có dấu ngoặc kép bao quanh, chẳng hạn như"Hello".
Intlà một số nguyên dương hoặc âm, chẳng hạn như 0, 23 hoặc -1024.
Bạn có thể truyền một hoặc nhiều đối số vào một hàm để hàm đó dùng được, ví dụ: fun printCakeBottom(age:Int, layers:Int) {}
Sử dụng câu lệnh repeat() {} để lặp lại một tập hợp lệnh theo một số lần Ví dụ: repeat (23) { print("%") }hoặc repeat (layers) { print("@@@@@@@@@@") }
Vòng lặp (loop) là một lệnh lặp lại nhiều lần Câu lệnh repeat() là một ví dụ về vòng lặp.
Bạn có thể lồng các vòng lặp để tạo ra các cấu trúc phức tạp hơn trong lập trình, chẳng hạn như đặt vòng lặp trong vòng lặp Ví dụ, bạn có thể sử dụng câu lệnh repeat() trong một vòng lặp khác để in một ký hiệu nhiều lần theo hàng, tương tự như cách in các lớp bánh nhiều tầng Việc lồng vòng lặp giúp dễ dàng tạo ra các mẫu hình dạng đa dạng và phức tạp hơn, phù hợp với nhiều ứng dụng lập trình khác nhau.
Tóm tắt về việc sử dụng các đối số của hàm:Để sử dụng các đối số của hàm, bạn cần thực hiện 3 việc sau:
Thêm đối số và kiểu vào định nghĩa hàm:printBorder(border: String)
Sử dụng đối số bên trong hàm:println(border)
Cung cấp đối số khi bạn gọi hàm: printBorder(border)
Chương trình (program) là một tập hợp hướng dẫn đã xác định để yêu cầu máy tính của bạn thực hiện các thao tác cụ thể Nó giúp hệ thống máy tính hoàn thành các nhiệm vụ bằng cách thực hiện các bước lệnh được lập trình sẵn, mang lại hiệu quả và chính xác trong quá trình xử lý dữ liệu.
“Happy Birthday!” (“Chúc mừng sinh nhật!”)
Câu 2:Bạn sử dụng từ khoá nào để xác định một hàm trong Kotlin? a fun b func c function e main
Câu 3: Bạn cần làm điều nào sau đây để tạo một chương trình Kotlin có thể in một dòng văn bản?
Chọn số lượng đáp án phù hợp để mô tả chức năng của chương trình, giúp làm rõ các thành phần chính Một hàm main() đóng vai trò là điểm bắt đầu thực thi chương trình trong nhiều ngôn ngữ lập trình Dấu ngoặc nhọn {} được dùng để nhóm các hướng dẫn, tạo thành khối lệnh rõ ràng và dễ quản lý Lệnh gọi hàm print() hoặc println() giúp in kết quả ra màn hình, thể hiện kết quả của chương trình Ngoài ra, câu lệnh repeat() có thể được sử dụng để lặp lại các thao tác nhiều lần, tối ưu hóa quá trình thực thi chương trình.
Câu hỏi này yêu cầu bạn dự đoán tác dụng của mã Kotlin dựa trên các lựa chọn đã cho Các lựa chọn đề cập đến việc in ra một, hai hoặc ba dòng văn bản, hoặc hai dòng văn bản được phân tách bằng một dòng trống Điều này giúp kiểm tra kiến thức về cách sử dụng các lệnh in trong Kotlin và khả năng dự đoán kết quả sau khi chạy mã Hiểu rõ câu hỏi sẽ hỗ trợ bạn viết nội dung phù hợp chuẩn SEO về cách thức hoạt động của mã Kotlin trong các bài hướng dẫn lập trình.
Để in ra bánh 6 lớp nhân dịp sinh nhật lần thứ 4 của ai đó, bạn cần sửa đổi hàm main() bằng cách đặt tuổi của bánh là 4 và số lớp bánh là 6 Cụ thể, chọn lựa đúng là đặt biến val thành 4 cho tuổi và 6 cho số lớp bánh, đảm bảo phản ánh chính xác dịp sinh nhật và số lượng lớp bánh mong muốn Điều này giúp chương trình hiển thị đúng hình dạng bánh phù hợp với kỷ niệm sinh nhật lần thứ 4.
Câu 6: Tuỳ chọn nào sau đây gọi hàm đúng cách rồi truyền đối số đầu vào hợp lệ?
Làm quen với Android Studio
Android Studio là môi trường phát triển tích hợp (IDE) chính thức dùng để phát triển ứng dụng Android, do Google xây dựng và phân phối Nó là một nhà máy chuyên biệt giúp nhà phát triển dễ dàng thiết kế, xây dựng, chạy và kiểm thử ứng dụng trên nền tảng Android Android Studio dựa trên nền tảng IntelliJ IDEA và đi kèm trình bổ trợ Android được cài đặt sẵn cùng các yếu tố điều chỉnh đặc thù cho Android Nhờ đó, người dùng sẽ cảm thấy quen thuộc và dễ làm quen với môi trường này khi phát triển ứng dụng Android.
Trong bài học này, bạn sẽ cài đặt Android Studio.
Android là hệ điều hành phổ biến dành cho điện thoại thông minh và các thiết bị khác như máy tính bảng, thiết bị đeo, TV và ô tô Nó hỗ trợ chạy nhiều ứng dụng quan trọng như Điện thoại, Tin nhắn, Gmail, Photos và các trò chơi yêu thích của bạn Android mang lại trải nghiệm đa dạng và tiện lợi cho người dùng trên nhiều thiết bị khác nhau.
Android là hệ điều hành phổ biến nhất dành cho thiết bị di động, với hơn 2,5 tỷ thiết bị trên toàn cầu Hệ điều hành này không chỉ xuất hiện trên điện thoại smartphone mà còn trên các thiết bị khác như đồng hồ thông minh, TV và ô tô, mở rộng khả năng sử dụng đa dạng và tiện lợi cho người dùng.
Xác minh yêu cầu về hệ thống
Để chạy Android Studio, máy tính và hệ điều hành của bạn cần đáp ứng một số yêu cầu.
Đảm bảo kết nối Internet tốt và ổn định Thời gian cài đặt có thể thay đổi tuỳ vào tốc độ và độ tin cậy của kết nối Internet.
To install Android Studio, open any web browser like Chrome and visit https://developer.android.com/studio#Requirements This webpage lists the specific hardware requirements necessary to install and run Android Studio smoothly on your computer.
Tải Android Studio xuống
Dưới đây là các bước tải và cài đặt Android Studio: Truy cập trang web chính thức của nhà phát triển Android tại https://developer.android.com/studio để tải xuống Android Studio, trang web sẽ tự động nhận diện hệ điều hành của bạn Sau đó, nhấp vào nút "Download Android Studio" để bắt đầu quá trình tải xuống, lưu tệp vào vị trí dễ tìm như Desktop hoặc Downloads Trước khi tải xuống, bạn cần đọc kỹ và đồng ý với các Điều khoản và điều kiện của Android Studio bằng cách đánh dấu vào ô "I have read and agree with the above terms and conditions" rồi nhấp vào "Download Android Studio for…" Quá trình tải xuống có thể mất chút thời gian, vì vậy bạn có thể tranh thủ thư giãn hoặc thưởng thức một tách trà trong lúc chờ đợi Lưu ý rằng giao diện của hộp thoại và biểu tượng cài đặt có thể thay đổi theo các phiên bản Android Studio, nhưng các bước cài đặt cơ bản vẫn giữ nguyên.
Cài đặt Android Studio
Mở thư mục chứa tệp cài đặt Android Studio đã tải về Nhấp đúp vào tệp để bắt đầu quá trình cài đặt Nếu xuất hiện hộp thoại User Account Control (Kiểm soát tài khoản người dùng) yêu cầu xác nhận, hãy nhấp "Yes" để cho phép quá trình cài đặt thực hiện các thay đổi trên máy tính của bạn.
Khi mở Android Studio, hộp thoại "Welcome to Android Studio Setup" sẽ xuất hiện, hướng dẫn bạn bắt đầu quá trình cài đặt Bạn chỉ cần nhấn "Next" để tiếp tục và chấp nhận các cài đặt mặc định cho từng bước Sau khi quá trình cài đặt hoàn tất, nhấn "Finish" để khởi chạy Android Studio Khi lần đầu mở, bạn có thể chọn giữa giao diện sáng hoặc tối; trong khoá học này, giao diện sáng được sử dụng, nhưng bạn hoàn toàn có thể chọn theo sở thích cá nhân để tối ưu hóa trải nghiệm phát triển ứng dụng Android.
Quá trình này có thể mất chút thời gian tuỳ thuộc vào tốc độ Internet của bạn.
Trong quá trình cài đặt, trình hướng dẫn sẽ tải xuống và cài đặt các thành phần và công cụ bổ sung cần thiết để phát triển ứng dụng Android, có thể mất thời gian tùy thuộc vào tốc độ Internet Trong quá trình này, bạn có thể gặp hộp thoại User Account Control của Windows yêu cầu bạn nhấp vào Yes để đồng ý Bạn cũng có thể xuất hiện cảnh báo bảo mật của Windows về adb.exe; hãy chọn Allow Access để tiếp tục quá trình cài đặt Khi quá trình hoàn tất, hãy nhấn Finish để kết thúc cài đặt thành công.
Cửa sổ Welcome to Android Studio (Chào mừng bạn đến với Android Studio) sẽ hiện ra và bạn có thể bắt đầu tạo ứng dụng!
IDE stands for Integrated Development Environment, which is a comprehensive software application that provides developers with all the necessary tools to write, test, and debug code efficiently It is essential for programming in various languages and boosts productivity by combining code editing, compilation, and debugging features within a single interface Choosing the right IDE can significantly streamline the software development process and improve code quality.
Câu 2: Sử dụng Android Studio có ưu điểm nào?
Chọn số lượng đáp án tùy ý để tối ưu hóa quá trình phát triển phần mềm Các công cụ này giúp bạn tránh lỗi chính tả và các lỗi khác trong mã nguồn của mình, đảm bảo ứng dụng hoạt động ổn định hơn Ngoài ra, chúng đi kèm với trình mô phỏng – một thiết bị ảo cho phép bạn chạy thử ứng dụng ngay trong quá trình lập trình, giúp bạn xem trước hiệu suất và giao diện theo thời gian thực Những công cụ này còn tự động dịch ứng dụng sang các ngôn ngữ khác, mở rộng khả năng tiếp cận của sản phẩm đến nhiều đối tượng người dùng toàn cầu.
BÀI 4 TẠO VÀ CHẠY ỨNG DỤNG ANDROID ĐẦU TIÊN Giới thiệu
Trong lớp học lập trình này, bạn sẽ tạo ứng dụng Android đầu tiên có tên "Chúc mừng sinh nhật", bắt đầu từ mẫu ứng dụng cơ bản do Android Studio cung cấp Bạn sẽ khám phá giao diện dự án Android, giúp hiểu rõ cách tổ chức và điều hướng trong môi trường phát triển Ngoài ra, khóa học còn hướng dẫn cách sử dụng các cửa sổ trong Android Studio để tối ưu hóa quá trình lập trình và phát triển ứng dụng hiệu quả.
Làm quen với việc thiết lập, cấu hình và sử dụng các ứng dụng, chẳng hạn như trình xử lý văn bản hoặc bảng tính;
Cách tạo dự án trên Android Studio cho ứng dụng Android sử dụng mẫu;
Sản phẩm bạn sẽ tạo ra: Ứng dụng Android cơ bản từ một mẫu.
Tạo ứng dụng đầu tiên của bạn
Trong nhiệm vụ này, bạn sẽ tạo một ứng dụng Android sử dụng mẫu dự án do Android Studio cung cấp.
Trong Android Studio, mẫu dự án là một ứng dụng Android tích hợp đầy đủ các phần cần thiết nhưng hạn chế về chức năng, nhằm giúp người phát triển bắt đầu nhanh chóng và giảm thiểu công đoạn lập trình ban đầu Các mẫu dự án phổ biến trong Android Studio bao gồm ứng dụng tích hợp bản đồ và ứng dụng nhiều màn hình, giúp tối ưu hóa quá trình phát triển và tiết kiệm thời gian.
Tạo một dự án Hoạt động trống
Trong các bước này, bạn sẽ tạo dự án Android Studio mới bằng mẫu dự án
Để bắt đầu tạo ứng dụng mới trong Android Studio, bạn cần khởi động phần mềm bằng cách nhấn vào biểu tượng Android Studio Khi cửa sổ chào mừng xuất hiện, hãy chọn "Dự án mới" để bắt đầu Trong cửa sổ dự án mới, bạn sẽ thấy danh sách các mẫu dự án do Android Studio cung cấp, phù hợp cho nhiều loại thiết bị như điện thoại, máy tính bảng và đồng hồ thông minh, cũng như các loại ứng dụng gồm ứng dụng có màn hình cuộn, bản đồ hoặc giao diện dễ thao tác Tiếp theo, hãy chọn thẻ "Phone and Tablet" ở phía trên cùng bên trái để duyệt các mẫu phù hợp Cuối cùng, bạn chọn mẫu "Empty Activity" (Hoạt động trống) để làm mẫu cho dự án của mình, giúp bạn bắt đầu xây dựng ứng dụng từ một khởi đầu đơn giản.
Mẫu Empty Activity (Hoạt động trống) là mẫu đơn giản nhất để bắt đầu tạo ứng dụng, với một màn hình hiển thị thông điệp "Xin chào mọi người" Sau khi hoàn thành, người dùng chỉ cần nhấp vào nút Next (Tiếp tục) ở cuối cửa sổ để mở hộp thoại New Project (Dự án mới), giúp quá trình thiết lập dự án trở nên dễ dàng và nhanh chóng.
Trong cấu hình dự án, phần "Name" (Tên) yêu cầu nhập tên ứng dụng, ví dụ như "Happy Birthday" để đặt tên cho dự án của bạn Phần "Package name" (Tên gói) là tên duy nhất hệ thống Android sử dụng để nhận diện ứng dụng, thường được đặt theo tên tổ chức của bạn rồi đến tên ứng dụng, tất cả đều viết bằng chữ thường để đảm bảo tính duy nhất và dễ nhận diện.
Trong quá trình tạo dự án Android, bạn cần xác định vị trí lưu các tệp liên quan và lưu ý ghi lại để dễ dàng truy cập sau này Đảm bảo chọn ngôn ngữ lập trình là Kotlin để phù hợp với dự án của bạn Chọn SDK tối thiểu là API 19 (Android 4.4 KitKat) để đảm bảo khả năng tương thích với nhiều thiết bị Hãy chú ý đến thông tin về số lượng thiết bị hỗ trợ ở cấp API đã chọn và sử dụng liên kết "Help me choose" để chọn đúng phiên bản Android phù hợp Trong bước tạo dự án mới, nhớ bỏ chọn hộp "Use legacy android.support libraries" để tránh lỗi không tương thích Cuối cùng, nhấn "Finish" để hoàn tất quá trình tạo dự án một cách chính xác và hiệu quả.
Android Studio sẽ mở dự án và tất cả các tệp trong dự án.
Trong Android Studio, tab "What's New" (Tính năng mới) cung cấp các tin tức và mẹo hữu ích giúp người dùng cập nhật nhanh các tính năng mới Ở góc dưới bên phải của Android Studio, bạn sẽ thấy thông báo hoặc thanh tiến trình cho biết quá trình thiết lập dự án đang diễn ra, giúp người dùng theo dõi trạng thái một cách dễ dàng Ví dụ, hãy đợi đến khi Android Studio hoàn tất quá trình thiết lập dự án để bắt đầu làm việc hiệu quả hơn Thông báo ở góc dưới bên trái sẽ thông báo khi dự án đã sẵn sàng, giúp bạn biết chính xác thời điểm để tiếp tục các bước tiếp theo trong quá trình phát triển ứng dụng.
Chạy ứng dụng của bạn trên thiết bị ảo (trình mô phỏng)
Trong nhiệm vụ này, bạn sẽ sử dụng Device Manager (Trình quản lý thiết bị) để tạo phiên bản phần mềm giả lập của thiết bị di động, giúp chạy thử ứng dụng trên máy tính Các thiết bị ảo hoặc trình mô phỏng này mô phỏng cấu hình của các thiết bị Android cụ thể như điện thoại hoặc máy tính bảng, với các phiên bản hệ điều hành Android tùy chỉnh Bằng cách này, bạn có thể kiểm thử ứng dụng của mình một cách chính xác trên các thiết bị Android khác nhau mà không cần thiết bị vật lý Cuối cùng, bạn sẽ sử dụng thiết bị ảo để chạy ứng dụng đã được tạo bằng mẫu Empty Activity, giúp kiểm tra và phát triển dễ dàng hơn.
Trình mô phỏng Android là một ứng dụng độc lập cho phép thiết lập thiết bị ảo phù hợp với các yêu cầu hệ thống riêng biệt Các thiết bị ảo này tiêu thụ lượng lớn dung lượng ổ đĩa, do đó cần lưu ý về không gian lưu trữ khi sử dụng Nếu gặp phải vấn đề trong quá trình chạy, bạn có thể tham khảo hướng dẫn cách chạy ứng dụng trên Trình mô phỏng Android để khắc phục hiệu quả.
Tạo thiết bị ảo Android (AVD)
Bước đầu tiên để chạy trình mô phỏng trên máy tính là tạo cấu hình cho thiết bị ảo Bạn có thể bắt đầu bằng cách truy cập vào thanh trình đơn của Android Studio và chọn Tools > Device Manager (Công cụ > Trình quản lý thiết bị) để thiết lập các thiết bị ảo phù hợp.
Mẹo: Bạn cũng có thể mở Trình quản lý thiết bị bằng cách nhấp vào biểu tượng trên thanh công cụ.
Trình quản lý thiết bị hiển thị danh sách các thiết bị đã được tạo trước đó, giúp bạn dễ dàng theo dõi và quản lý Nếu bạn chưa có thiết bị nào, có thể nhấn vào nút "Tạo thiết bị" (Create Device) để bắt đầu quá trình thêm mới thiết bị.
Cửa sổSelect Hardware(Chọn phần cứng) sẽ xuất hiện.
Trong cửa sổ Select Hardware, bạn sẽ thấy danh sách các thiết bị được cấu hình sẵn theo các danh mục khác nhau, giúp dễ dàng lựa chọn phù hợp Mỗi thiết bị đi kèm với các thông tin quan trọng như kích thước hiển thị, độ phân giải màn hình tính bằng pixel, và mật độ pixel, hỗ trợ bạn chọn thiết bị phù hợp với mục đích sử dụng Để bắt đầu, hãy chọn danh mục Phone (Điện thoại) và sau đó chọn một mẫu điện thoại như Pixel 5, rồi nhấp vào Next (Tiếp theo) Trong lớp học lập trình này, khuyên bạn nên chọn các thiết bị mới hơn để đảm bảo tính tương thích và hiệu suất tốt nhất.
Cửa sổ System Image sẽ xuất hiện, cho phép bạn chọn phiên bản hệ thống Android để chạy trên thiết bị ảo, giúp kiểm thử ứng dụng trên nhiều phiên bản Android khác nhau Từ thẻ Recommended, chọn phiên bản Android phù hợp để tạo thiết bị ảo, trong đó có thể là phiên bản mới nhất hoặc các phiên bản ổn định hơn Bạn có thể tham khảo danh sách các phiên bản ổn định tại https://source.android.com/docs/setup/start/build-numbers để lựa chọn phù hợp cho quá trình phát triển và thử nghiệm.
Nếu liên kết Download (Tải xuống) xuất hiện cạnh hình ảnh hệ thống, điều này cho thấy bạn chưa cài đặt hình ảnh đó trên máy tính Bạn cần tải xuống và cài đặt hình ảnh hệ thống trước khi có thể cấu hình thiết bị ảo Quá trình tải xuống có thể mất thời gian tùy thuộc vào tốc độ kết nối Internet của bạn, sau khi hoàn tất, hãy nhấp vào nút Finish (Hoàn tất) để kết thúc.
Lưu ý quan trọng: Các ảnh hệ thống Android chiếm nhiều dung lượng ổ đĩa và chỉ một số ảnh phù hợp với quá trình cài đặt ban đầu Ngoài ra, có nhiều phiên bản hệ điều hành Android khác nhau vượt ra ngoài danh sách trong thẻ Recommended (Đề xuất) Để xem đầy đủ các phiên bản, người dùng nên kiểm tra thẻ x86 Images (Ảnh x86) và Other Images (Ảnh khác) Khi đã lựa chọn xong, hãy nhấp vào nút Next (Tiếp theo) để tiếp tục quá trình cài đặt.
Cửa sổ Android Virtual Device (AVD) cho phép bạn chọn và tùy chỉnh cấu hình cho thiết bị ảo của mình Bạn cần nhập tên cho thiết bị ảo trong phần "AVD Name" để dễ dàng quản lý Sau đó, giữ nguyên các thiết lập còn lại và nhấp vào "Finish" để hoàn tất quá trình tạo thiết bị ảo Android.
Thiết bị ảo mới sẽ hiển thị trong cửa sổ Device Manager (Trình quản lý thiết bị)
Để chạy ứng dụng trên thiết bị ảo, đầu tiên hãy đảm bảo Android Studio đã sẵn sàng làm nền tảng phát triển Trong Android Studio, trên thanh công cụ, bạn cần chọn trình đơn thả xuống chứa danh sách các thiết bị ảo đã được tạo trước đó, rồi chọn thiết bị phù hợp từ danh sách này để chạy ứng dụng của mình Bạn cũng có thể nhấp vào Menu Run > Select để dễ dàng lựa chọn thiết bị ảo mong muốn.
Để chạy ứng dụng trên thiết bị ảo trong Android Studio, bạn cần chọn "Run > Run app" hoặc nhấp vào biểu tượng "Run" trên thanh công cụ Sau đó, chọn thiết bị ảo từ các thiết bị có trong cửa sổ bật lên để bắt đầu quá trình thử nghiệm Thiết bị ảo sẽ khởi động và hoạt động như một thiết bị thực, tuy nhiên, thời gian chờ đợi có thể khác nhau tùy vào tốc độ của máy tính.
Khi ứng dụng sẵn sàng, nó sẽ mở trên thiết bị ảo như được hiển thị dưới đây.
Tuyệt vời! Thiết bị ảo của bạn hiện đã hoạt động Lưu ý hiện tại tiêu đề là
"Happy Birthday" và "Hello World!" đang hiển thị trên màn hình.
Tìm tệp dự án của bạn
Khi bạn bắt đầu cấu hình dự án trong Android Studio, một thư mục đã được tự động tạo trên máy tính của bạn mang tên AndroidStudioProjects, chứa tất cả các dự án Android của bạn Bên trong thư mục này, Android Studio sẽ tạo ra một thư mục riêng biệt có cùng tên với tên ứng dụng của bạn, giúp tổ chức dự án rõ ràng và dễ kiểm soát hơn Quá trình này giúp bạn quản lý các dự án Android một cách hiệu quả, đảm bảo mọi thành phần đều được sắp xếp hợp lý từ bước khởi tạo.
HappyBirthday(Chúc mừng sinh nhật)).
Thư mục HappyBirthday là thư mục dự án chính của bạn trong Android Studio, nơi lưu giữ tất cả các tệp liên quan đến dự án Android Studio tự động lưu trữ cả các tệp bạn tạo thủ công lẫn các tệp hệ thống được sinh ra trong quá trình phát triển trong thư mục này Để quản lý dự án, bạn có thể quan sát cửa sổ Project nằm bên trái màn hình Android Studio, giúp dễ dàng duyệt và chỉnh sửa các tệp trong thư mục dự án của mình.
(Dự án) hiển thị các tệp và thư mục trong dự án.
Các tệp trong cửa sổ Project được tổ chức giúp bạn dễ dàng di chuyển giữa các tệp dự án trong quá trình lập trình Trong khi đó, khi xem các tệp qua trình duyệt tệp như Finder hoặc Windows Explorer, thứ tự sắp xếp tệp lại khác biệt hoàn toàn Việc hiểu rõ cách tổ chức tệp trong dự án sẽ giúp tối ưu hóa quy trình làm việc của bạn.
Trong tác vụ này, bạn sẽ tìm hiểu hai chế độ xem khác nhau của hệ thống phân cấp thư mục dự án để dễ dàng quản lý và truy cập các tập tin Để bắt đầu, trong Android Studio, hãy mở cửa sổ Project (Dự án) và chọn chế độ xem Android từ trình đơn thả xuống ở góc trên bên trái để tối ưu hóa trải nghiệm làm việc với dự án của bạn.
Bạn sẽ thấy danh sách tệp tương tự như sau:
Chế độ xem và cách sắp xếp các tệp trong dự án rất hữu ích khi lập trình, giúp tổ chức mã nguồn hiệu quả Bạn có thể dễ dàng xem các tệp của mình hiển thị trên trình duyệt tệp như Finder trên macOS hoặc Explorer trên Windows, thuận tiện cho việc quản lý và truy cập Để quản lý các tệp trong dự án, chọn mục "Project Source Files" (Tệp nguồn dự án) trong cửa sổ Project từ trình đơn thả xuống để dễ dàng thao tác và tổ chức tệp của bạn.
Xin lưu ý tiêu đề sẽ thay đổi thành thư mục lưu trữ các tệp dự án.
Giờ đây, bạn có thể duyệt qua các tệp một cách dễ dàng, giống như trong các trình duyệt tệp thông thường Để quay lại chế độ xem trước trong dự án của mình, chỉ cần chọn Android trong cửa sổ Project (Dự án) một lần nữa, giúp tối ưu quá trình kiểm tra và chỉnh sửa tệp.
Tuyệt vời! Giờ bạn đã có thể tạo và chạy ứng dụng được tạo từ mẫu cũng như tìm được các tệp dự án của mình.
Để tạo một dự án mới trong Android Studio, bạn cần khởi động phần mềm và nhấp vào nút "Start a new Android Studio project" hoặc "Bắt đầu dự án Android Studio mới" Sau đó, bạn đặt tên cho dự án, chọn một mẫu dự án phù hợp và điền các thông tin chi tiết cần thiết để hoàn tất quá trình cấu hình ban đầu.
Để tạo thiết bị ảo Android (trình mô phỏng) để chạy ứng dụng, bạn cần truy cập vào mục Tools > Device Manager (Công cụ > Trình quản lý thiết bị) Sau đó, sử dụng Device Manager để chọn hình ảnh hệ thống phù hợp và cấu hình thiết bị phần cứng mong muốn, nhằm mô phỏng môi trường Android chính xác cho quá trình phát triển và thử nghiệm ứng dụng.
Để chạy ứng dụng trên thiết bị ảo, bạn cần tạo thiết bị giả lập phù hợp trước Sau đó, chọn thiết bị đã tạo từ menu thả xuống của thanh công cụ để đảm bảo ứng dụng chạy đúng với môi trường mong muốn Cuối cùng, nhấn vào biểu tượng Run (Chạy) trên thanh công cụ để bắt đầu chạy ứng dụng trên thiết bị ảo một cách dễ dàng và nhanh chóng.
Để tìm tệp dự án, trong cửa sổ Project (Dự án), chọn Project Source Files (Tệp nguồn dự án) từ trình đơn thả xuống.
"Minimum SDK" trong dự án Android Studio đề cập đến phiên bản SDK tối thiểu mà ứng dụng của bạn hỗ trợ, nhằm xác định hệ điều hành Android thấp nhất mà ứng dụng có thể chạy Việc thiết lập đúng mức này giúp đảm bảo tính tương thích của ứng dụng trên các thiết bị khác nhau, giảm thiểu lỗi và tối ưu hóa hiệu suất Điều này còn giúp các nhà phát triển xác định phạm vi hỗ trợ và tối ưu hóa trải nghiệm người dùng trên các phiên bản Android khác nhau Thường, bạn cần chọn mức SDK tối thiểu phù hợp để cân bằng giữa khả năng tiếp cận người dùng và tính năng của ứng dụng.
Câu 3:Trong Android Studio, mẫu dự án có ưu điểm gì?
Chọn số lượng đáp án tùy ý giúp Android Studio tải tệp xuống nhanh hơn và bắt đầu xây dựng một ứng dụng mới một cách nhanh chóng Đồng thời, nó cung cấp cấu trúc dự án theo các phương pháp hay nhất, giảm thiểu lỗi trong quá trình phát triển ứng dụng bằng cách điền sẵn các đoạn mã cần thiết, và là cách duy nhất để xây dựng ứng dụng xem trước trong Android Studio.
Để tạo một dự án mới trong Android Studio, bạn có thể chọn cách từ menu chính bằng cách vào File > New > New Project, hoặc từ màn hình chào mừng bằng cách nhấp vào “Start a new Android Studio project” Nếu đã có dự án mở sẵn, bạn cũng có thể bắt đầu tạo dự án mới bằng cách chọn tùy chọn này trong trình đơn của Android Studio Ngoài ra, bạn cần tạo một tệp mới trên máy tính với tiêu đề phù hợp như “New Android Studio Project” Do đó, cả hai cách trên đều là phương pháp hợp lệ để bắt đầu một dự án mới trong Android Studio, giúp bạn nhanh chóng bắt đầu phát triển ứng dụng Android của mình.