2012-05-21 34 views
10

Đây là một câu hỏi liên quan đến các ứng dụng Android với hai .apks khác nhau (hoặc hai ứng dụng chứa trong một file .apk)tập tin Một .apk để cài đặt hai ứng dụng

Tôi có hai ứng dụng mà làm những việc hoàn toàn khác nhau nhưng có liên quan, giả sử một là ứng dụng người dùng chuẩn và một là ứng dụng quản trị. Nhưng người dùng có thể là cả người dùng và quản trị viên. Tôi tự hỏi liệu tôi có thể tạo một tệp .apk để cài đặt hai ứng dụng vào điện thoại không? Và làm thế nào tôi sẽ nhận được về điều này?

Cảm ơn, Matt

Trả lời

4

Tùy thuộc vào định nghĩa của bạn về "ứng dụng". Bạn không thể cài đặt 2 ứng dụng nếu bạn chỉ có thể sử dụng 1 <application> trong manifest.xml

Bạn có thể xác định một số hoạt động trong số manifest.xml và có thể thực hiện những việc riêng biệt. 2 điều mà một người có thể mô tả là "ứng dụng" trong một số APK

Chỉ cần xác định nhiều hoạt động và sử dụng những hoạt động đó có thể được xác định là tùy chọn, nhưng tùy thuộc vào định nghĩa của bạn về 'ứng dụng', nhưng trong trường hợp này tôi muốn nói nó sẽ hoạt động

+0

Chỉ cần các giải pháp có vẻ phù hợp ... bạn có liên kết đến nó trên Android không nhà phát triển wiki, tôi không thể nhìn thấy nó, cảm ơn – MattTheHack

+0

Chắc chắn: http://developer.android.com/guide/topics/manifest/activity-element.html. Bạn đang tuyên bố mọi hoạt động dù sao, vì vậy nó không thực sự lớn. Bạn nên có bộ lọc ý định để nó là trình khởi chạy, giống như hoạt động đầu tiên của bạn: http://developer.android.com/reference/android/content/Intent.html#CATEGORY_LAUNCHER – Nanne

0

số

những gì bạn có thể làm là để kiểm tra xem các ứng dụng thứ hai đã được cài đặt, và nếu câu trả lời là không, bạn có thể nhắc nhở người yêu cầu để cài đặt các ứng dụng thứ hai sử dụng this bài đăng.

1

Bạn nên tạo 2 APK đang sử dụng APK Expansion Files.

Btw, đây là biện pháp bảo mật.

+2

sử dụng.Các tệp mở rộng apk sẽ không cài đặt gói ứng dụng thứ hai (tôi nghĩ) – thepoosh

+0

Các tệp mở rộng @Thepoosh chỉ được thêm nếu kích thước tệp apk> 50MB –

6

Bạn có thể có hai thành phần hoạt động trong cùng một tệp kê khai, có cả tệp mục đích r với hành động = MAINdanh mục = LAUNCHER. Hơn nữa, bạn cũng phải sử dụng thuộc tính "android: taskAffinity" cho cả hai yếu tố hoạt động (xem thêm here):

<application android:allowBackup="true"   
      android:icon="@drawable/main_icon" 
      android:label="@string/main_name" 
      android:theme="@style/AppTheme" > 

    <activity android:name="com.foobar.MyActivity2"    
       android:taskAffinity="com.foobar.MyActivity2" 
       android:icon="@drawable/icon1" 
       android:label="@string/name1" > 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN"  /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity>   

    <activity android:name="com.foobar.MyActivity2" 
       android:taskAffinity="com.foobar.MyActivity2" 
       android:icon="@drawable/icon1" 
       android:label="@string/name2" > 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN"  /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity>    

</application> 

Khi nộp với biểu hiện này APK được cài đặt trên một thiết bị, nó sẽ tạo ra hai biểu tượng trên màn hình chính. Tiêu đề của các biểu tượng này sẽ được lấy từ các thuộc tính android: label và các biểu tượng sẽ được lấy từ các thuộc tính android: icon. Trong danh sách ứng dụng dưới "Cài đặt | Ứng dụng" bạn sẽ thấy biểu tượng & được xác định bởi các thuộc tính của thẻ ứng dụng. Khi bạn chọn "gỡ cài đặt" cho mục nhập này trong danh sách ứng dụng thì cả "ứng dụng" sẽ bị xóa khỏi thiết bị.

+0

làm cách nào để hợp nhất hai apks để tạo chúng thành một ứng dụng duy nhất –

+0

"Hợp nhất hai APK" có nghĩa là bạn không có mã nguồn của ứng dụng, phải không? Câu hỏi này được thảo luận ở đó: http://stackoverflow.com/questions/5074695. Vấn đề là vì điều này bạn phải hợp nhất hai classes.dex, và cũng là tệp AndroidManifest.xml, được chứa dưới dạng nhị phân trong tệp APK. – user1364368

+0

Tôi đang cố gắng tạo một ứng dụng như LOCKET vì vậy tôi có một apk cho Moonfruit kể từ khi tôi đã làm cho nó LAUNCHER trong biểu hiện và tôi có một apk cho màn hình chính bên trong ứng dụng mà cũng là Launcher trong biểu hiện của tôi. Tôi chỉ có một tệp kê khai thats lý do tại sao tôi nhận được 2 apks trên launcher. –

1

Có, bạn có thể cài đặt nhiều ứng dụng bằng cách chỉ cài đặt một ứng dụng.
Trong manifest.xml enter image description here

Cấu trúc dự án:

enter image description here

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