Google cam kết thúc đẩy công bằng chủng tộc cho các cộng đồng Đen. Xem thế nào.
Trang này được dịch bởi Cloud Translation API.
Switch to English

Codelab dành cho nhà phát triển Android

Bạn có thể giúp phát triển hệ điều hành được cài đặt rộng rãi nhất trong lịch sử Trái đất. Vâng, bạn đang ở đây để bắt đầu hành trình trở thành một kỹ sư nền tảng Android.

Mặc dù con đường đầy thách thức, nhóm Android của chúng tôi cố gắng đơn giản hóa hành trình của bạn mỗi lần phát hành. Và chúng tôi thực hiện các cải tiến mỗi ngày thông qua công việc trực tiếp trong Dự án nguồn mở Android (AOSP).

Vì vậy, ngồi lại, khởi động một thiết bị đầu cuối, và hãy làm nên lịch sử.

Bàn thắng

Nhiệm vụ của codelab này có hai mặt:

  1. Codelab này sẽ cung cấp cho bạn một hương vị nhỏ về quy trình làm việc của nhà phát triển đối với các kỹ sư Android làm việc trên nền tảng (hệ điều hành).
  2. Codelab này là một chức năng bắt buộc để bạn cung cấp phản hồi xung quanh các công cụ, tài liệu và quy trình làm việc của nhà phát triển Android khi bắt đầu từ đầu.

Điều kiện tiên quyết

Dưới đây là danh sách đầy đủ các yêu cầu cho codelab này, xuất phát từ những yêu cầu cho phát triển nền tảng chung ( AOSP ).

Để lấy codelab này, bạn sẽ cần phải thiết lập:

Môi trường

Thông thường, người dùng xây dựng và phát triển trực tiếp trên máy trạm. Bởi vì bạn có thể đang làm việc trong các thiết bị đầu cuối khác nhau và nhiều lệnh được sử dụng là dành riêng cho thiết bị đầu cuối, bạn sẽ cần chạy lại chúng trong mỗi phiên cuối. Cụ thể, chúng bao gồm các lệnh source build/envsetup.sh và lệnh lunch .

Thiết lập máy trạm

  1. Cài đặt các gói cần thiết trên máy trạm.
  2. Trong khi vẫn ở trong một thiết bị đầu cuối, hãy cài đặt Repo và nhận thông tin đăng nhập cho tất cả các kho Git.

Khởi tạo và đồng bộ mã

  1. Điều hướng vào thư mục nhà của bạn:

     cd ~
     
  2. Tạo một thư mục con làm việc cục bộ trong đó:

     mkdir aosp
     
  3. Điều hướng vào thư mục:

     cd aosp
     
  4. Khởi tạo nhánh chính mã nguồn kho lưu trữ AOSP (mặc định):

     repo init -u https://android.googlesource.com/platform/manifest
     
  5. Nhập hoặc chấp nhận thông tin đăng nhập Git của bạn (tên, địa chỉ email).

  6. Đồng bộ hóa mã nguồn:

     repo sync -j16
     

Đồng bộ ban đầu có thể mất một giờ hoặc nhiều hơn. Xem hướng dẫn tải xuống để biết chi tiết liên quan trong khi bạn chờ đợi.

Mỗi thanh toán repo được thể hiện bằng một tệp kê khai . Bạn có thể có nhiều hơn một lần kiểm tra repo tại một thời điểm miễn là chúng tồn tại trong các thư mục riêng biệt. Nhưng lưu ý mỗi lần thanh toán và xây dựng lên tới khoảng 300 GB và đang phát triển, vì vậy hãy giới hạn hai hoặc tăng hệ thống của bạn bằng một ổ đĩa thứ cấp.

Mẹo: Để giải phóng dung lượng, hãy xóa thư mục nhánh và bắt đầu lại từ việc tạo thư mục:

 rm -rf aosp2
 

Xây dựng mã

Để xây dựng Android, bạn phải chọn loại thiết bị đích để xây dựng bằng lệnh lunch . Mục tiêu là hoán vị thiết bị, chẳng hạn như một mô hình cụ thể hoặc yếu tố hình thức.

Mục tiêu thiết bị được bao gồm bên dưới, aosp_cf_x86_phone-userdebug , cho phép bạn xây dựng thiết bị Android ảo Mực nang để thử nghiệm mà không cần thiết bị vật lý.

Thay vào đó, để xây dựng và cập nhật một thiết bị vật lý, hãy chọn một mục tiêu khác và làm theo hướng dẫn cho các thiết bị nhấp nháy .

  1. Thiết lập môi trường của bạn để xây dựng các thiết bị Android bằng cách chạy lệnh sau từ thư mục gốc của kiểm tra mã nguồn của bạn:

     source build/envsetup.sh
     
  2. Vượt qua mục tiêu xây dựng cho lệnh ăn trưa, như vậy:

     lunch aosp_cf_x86_phone-userdebug
     
  3. Xây dựng mã từ bất cứ nơi nào trong thanh toán của bạn với:

     m
     

Dự kiến ​​bản dựng đầu tiên sẽ mất hàng giờ. Xây dựng sau đó mất ít thời gian hơn đáng kể.

Tạo ví dụ Acloud

Acloud là một công cụ dòng lệnh trong AOSP hỗ trợ người dùng tạo các thiết bị Android ảo, trong trường hợp này là Mực nang.

Nếu bạn đang ở trong cùng một phiên cuối được sử dụng để xây dựng mã , hãy tiếp tục. Nếu không, hãy chạy lại tập lệnh envsetup.sh và cùng một lệnh lunch được sử dụng ở đó trước. Sau đó:

  1. Tạo một cá thể cục bộ Acloud với:

     acloud create --local-image --local-instance
     
  2. Chấp nhận cập nhật các gói yêu cầu.

  3. Nếu được nhắc, hãy khởi động lại máy trạm của bạn để tất cả các thay đổi có hiệu lực.

  4. Chọn thiết bị Mực nang.

Bạn sẽ được chào đón với phiên VNC có chứa thiết bị Android!

Bạn có thể tương tác với thiết bị ảo trên máy trạm bằng chuột và bàn phím. Bạn cũng có thể theo dõi hoạt động trong nhật ký trong khi bạn sử dụng thiết bị của mình bằng lệnh logcat Cầu gỡ lỗi (adb) của Android:

 adb logcat
 

Thay đổi

Cập nhật mã nguồn theo ví dụ này thay đổi .

  1. Từ thư mục gốc của bạn ( aosp/ thư mục), điều hướng đến dự án frameworks/native dự án Git frameworks/native :

     cd frameworks/native
     
  2. Bắt đầu một dự án tạm thời với:

     repo start <some-name> .
     
  3. Chỉnh sửa SurfaceFlinger.cpp để bao gồm các bản cập nhật từ danh sách thay đổi tại vị trí sau:

     aosp/frameworks/native/services/surfaceflinger/SurfaceFlinger.cpp
     
  4. Xây dựng mã:

     m
     
  5. Cập nhật bản dựng trên thiết bị:

     adb root
    adb remount
    adb sync
    adb reboot
    acloud reconnect
     

Bạn sẽ thấy một sự thay đổi màu sắc trên thiết bị.

Kiểm tra mã của bạn

Trong phần này của codelab, chúng ta sẽ thực hiện một bài kiểm tra ví dụ trong cây nguồn và đã thất bại. Để chạy thử nghiệm cục bộ, chúng tôi sẽ sử dụng Atest để kiểm tra mã.

Để sử dụng thử nghiệm:

  1. Chạy:

     atest DevCodelabTest
     
  2. Bài kiểm tra sẽ thất bại; Bây giờ hãy sửa nó! Tìm mã nguồn của bài kiểm tra thất bại:

     atest --info android.test.example.devcodelab.DevCodelabTest#testHelloWorld
     
  3. Sau đó nhìn vào bên trong:

     platform_testing/tests/example/devcodelab
     
  4. Đối với tệp để chỉnh sửa, lấy tên của bài kiểm tra và thay thế . với / , như vậy:

     android.test.example.devcodelab.DevCodelabTest
     

    Trở thành:

     src/android/test/example/devcodelab/DevCodelabTest.java
     
  5. Do đó chỉnh sửa:

     platform_testing/tests/example/devcodelab/src/android/test/example/devcodelab/DevCodelabTest.java
     

    Thay thế:

     Assert.assertTrue(false)
     

    Với:

     Assert.assertTrue(true)
     
  6. Chạy thử nghiệm một lần nữa để xác minh bạn đã sửa lỗi thử nghiệm:

     atest DevCodelabTest
     

Tải lên mã của bạn để xem xét

Repo đơn giản hóa việc sử dụng Git bằng cách gói các lệnh như git clone để hoạt động trên nhiều kho Git (hoặc dự án) cùng một lúc.

Xem Công cụ kiểm soát nguồn để xem tổng quan về Git và Repo với các liên kết đến tài liệu đầy đủ về cách làm việc với mã nguồn Android. Xem kho lưu trữ AOSP để biết danh sách đầy đủ các dự án Git và các dự án (đường dẫn) riêng lẻ cho các nhánh được liên kết với từng dự án.

Bạn sẽ sử dụng hệ thống đánh giá mã dựa trên web Gerrit cho các dự án trong Git.

  1. Giả sử bạn đã thực hiện các thay đổi của mình trong frameworks/native dự án frameworks/native , hãy chạy các lệnh này để tải chúng lên:

     cd frameworks/native
    repo start codelab .
    git add .
    git commit
     
  2. Đối với tin nhắn cam kết của bạn, hãy nhập:

     Android codelab change
    Test: manual atest
     
  3. Tải lên thay đổi của bạn:

     repo upload
     

Nếu bạn thành công, bạn sẽ thấy một thông báo giống như:

 Upload project frameworks/native/ to remote branch master:
  branch codelab ( 1 commit, Wed Aug 7 09:32:33 2019 -0700):
         ff46b36d android codelab change
to https://android-review.googlesource.com/ (y/N)? y
remote: Processing changes: refs: 1, new: 1, done
remote:
remote: SUCCESS
remote:
remote:   https://android-review.googlesource.com/c/platform/frameworks/native/+/1098432 android codelab change [NEW]
remote:
To https://android-review.googlesource.com/platform/frameworks/native
 * [new branch]          codelab -> refs/for/master
 

Xem thay đổi của bạn trong Gerrit

Đi đến liên kết được in trong thiết bị đầu cuối giống như:

 https://android-review.googlesource.com/c/platform/frameworks/native/+/1098432
 

Điều này hoàn thành codelab khởi đầu cho phát triển nền tảng Android. Xem Gửi bản vá cho các bước tiếp theo và phần còn lại của trang web này để biết chi tiết đầy đủ về việc phát triển Android.

Hoàn nguyên thay đổi của bạn

Thông thường, kiểm tra bài và xem xét / phê duyệt, bạn sẽ gửi thay đổi của mình trong Gerrit và hợp nhất nó vào kho lưu trữ.

Thay vào đó, với mục đích của codelab, hãy hoàn nguyên danh sách thay đổi của bạn bằng cách nhấp vào Abandon trong Gerrit.

Sau đó từ bỏ nhánh tạm thời được liên kết trong thư mục khung / dự án gốc (hoặc phụ của nó):

 repo abandon codelab .
 

Cũng nhớ để hoàn nguyên các thay đổi cho tệp thử nghiệm. Vì chúng tôi không repo start , git commitrepo upload thay đổi, chúng tôi chỉ có thể đặt lại tệp, như vậy (giả sử bạn đang ở trong thư mục aosp/platform_testing directory ):

 git reset HEAD tests/example/devcodelab/src/android/test/example/devcodelab/DevCodelabTest.java
git checkout .
 

Tại thời điểm này, bạn đã hoàn tất! Công việc tốt đẹp!

Được trợ giúp

Nếu bạn gặp lỗi trong codelab này, vui lòng báo cáo chúng bằng liên kết phản hồi Trang ở dưới cùng của bất kỳ trang nào. Gửi câu hỏi cho nhóm xây dựng Android .