2011-11-09 30 views
12

Tôi đang lập kế hoạch xây dựng hệ thống tự động để triển khai một bản dựng Android cho các thiết bị khác nhau, để giúp phát triển cho nhiều nền tảng thoải mái hơn một chút. Có cách nào để có được phiên bản sdk của một thiết bị kết nối thông qua android shell hoặc adb?Tải phiên bản Android SDK của thiết bị từ dòng lệnh

Sẽ có một máy tính mà một số thiết bị thử được kết nối và tôi đang lên kế hoạch viết một tập lệnh sẽ tìm đúng bản dựng cho mỗi máy chủ từ máy chủ xây dựng, cài đặt các apks khác nhau trên thiết bị tương ứng, khởi chạy chúng và thu thập thông tin nhật ký, được cung cấp thông qua một số chương trình khác có thông số kỹ thuật bên cạnh điểm. Điều quan trọng là tôi cần biết phiên bản sdk mà mỗi thiết bị đang chạy để cài đặt gói ứng dụng chính xác và tôi hy vọng tôi có thể thực hiện điều này thông qua adb, nhưng dường như tôi không tìm được cách để truy cập vào nó một cách ngắn gọn, nhưng có vẻ như tôi không biết. xây dựng một ứng dụng nhỏ, tương thích với tất cả các phiên bản, có mục đích duy nhất là xuất ra android.os.Build.VERSION.SDK hoặc tương tự ở đâu đó kịch bản của tôi có thể đọc được.

+1

Nhờ cả Tim và Tor-Morten; xin lỗi về việc trả lời muộn, nó đã được bận rộn trong một vài tuần. ro.build.version.sdk phù hợp với nhu cầu của tôi tốt :) Tim nhận được chấp nhận bởi vì phrasing của mình là phù hợp hơn để chạy từ một kịch bản để có được giá trị. – Arild

Trả lời

26

bạn có thể sử dụng lệnh này:

adb shell grep ro.build.version.sdk= system/build.prop 

Nó sẽ đưa ra một cái gì đó như thế này:

ro.build.version.sdk=10 

Best wishes, Tim

+2

Một số điện thoại Android cũ hơn không có "grep", nhưng bạn có thể làm điều này thay vào đó: '' 'adb shell cat system/build.prop | grep ro.build.version.sdk = '' ' –

+0

@AlexFlint: chúng không có grep nhưng tôi có thể sử dụng' ... | grep ... '? –

3

Tôi nghĩ rằng bạn có thể bằng cách truy cập vào thiết bị với adb shell - thay đổi thư mục để định vị bạn ở hệ thống và làm một con mèo của build.prop. Ở đây bạn sẽ tìm thấy ví dụ, ro.build.description = google_sdk-eng 2.2, ro.build.version.release = 2.2 etc

5

Tôi cũng đã phát hiện ra một cách để có được phiên bản chính xác của Android, ví dụ: 4.2.2 dựa trên bài viết trên web sau đây http://xayon.net/looking-for-android-version-with-adb/ Bạn cần sử dụng hệ điều hành giống như Unix - Linux và Mac OSX là tốt và cửa sổ người dùng có thể sử dụng Cygwin hoặc tương đương.

Tại một dòng lệnh:

echo version=$(adb shell getprop |awk -F":" '/build.version.release/ { print $2 }')|tr -d '[]'

Đây là kết quả cho Nexus của tôi 4:

version= 4.2.2

11
adb shell getprop ro.build.version.sdk 

Note @ Tim: này hoạt động ngay cả trên điện thoại mà không cần grep hỗ trợ trên tất cả các hệ điều hành máy chủ :-). (ví dụ: trên điện thoại cũ, nơi toolbox không hỗ trợ grep bạn cần phải có busybox trên điện thoại của mình).

Các vấn đề liên quan