উত্তর:
পূর্বনির্ধারিত অ্যাপ্লিকেশনগুলি /system/app
ফোল্ডারে রয়েছে। ব্যবহারকারী ইনস্টল অ্যাপ্লিকেশনগুলিতে আছে /data/app
। আমি অনুমান করি যে আপনি কোনও রুটযুক্ত ফোন না থাকলে আপনি অ্যাক্সেস করতে পারবেন না। আমার কাছে এখানে মূলের ফোন নেই তবে এই কোডটি চেষ্টা করে দেখুন:
public class Testing extends Activity {
private static final String TAG = "TEST";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
File appsDir = new File("/data/app");
String[] files = appsDir.list();
for (int i = 0 ; i < files.length ; i++ ) {
Log.d(TAG, "File: "+files[i]);
}
}
এটি আমার মূলের এইচটিসি যাদুতে এবং ইমুতে অ্যাপকে তালিকাভুক্ত করে।
আপনি প্যাকেজ ম্যানেজার (ব্যবহার করতে পারেন pm
এর বেশি) adb shell
তালিকা প্যাকেজে:
adb shell pm list packages | sort
এবং .apk
ফাইলটি কোথায় রয়েছে তা প্রদর্শন করতে :
adb shell pm path com.king.candycrushsaga
package:/data/app/com.king.candycrushsaga-1/base.apk
এবং adb pull
APK ডাউনলোড করতে।
adb pull data/app/com.king.candycrushsaga-1/base.apk
adb pull /data/app/com.example.app-filename.apk path/to/desired/destination
আপনি যদি পূর্বে ইনস্টল হওয়া কোনও কিছুর একটি APK ফাইল পেতে চান তবে এটি করুন:
আপনাকে আপনার ফোনটি রুট করতে, ব্যবহার করতে adb
বা কোনও কিছু লেখার দরকার নেই।
কোনও স্ট্যান্ডার্ড অবস্থান নেই, তবে আপনি প্যাকেজ ম্যানেজারটি ব্যবহার করে প্যাকেজগুলি সম্পর্কে জানতে এবং অ্যাপ্লিকেশনআইফো ক্লাসটি সেখান থেকে পেতে পারেন একটি নির্দিষ্ট প্যাকেজ সম্পর্কে বিভিন্ন তথ্য রয়েছে: এটির .apk, তার ডেটা ডিরেক্টরিতে যাওয়ার পথ, পথ কেবলমাত্র উত্স-এ .apk (ফরওয়ার্ড অ্যাপ্লিকেশনগুলির জন্য), ইত্যাদিতে ইত্যাদি Note নোট করুন যে অন্য অ্যাপ্লিকেশনটির সাথে আপনার সম্পর্কের উপর নির্ভর করে আপনার এই ডিরেক্টরিগুলি পড়ার অনুমতি থাকতে পারে বা থাকতে পারে না; তবে সমস্ত অ্যাপ্লিকেশন রিসোর্স .apk পড়তে সক্ষম (যা নন-ফরোয়ার্ড-লক করা অ্যাপ্লিকেশনের জন্য আসল .apk)।
যদি আপনি কেবল শেলটি ঘুরে দেখেন তবে বর্তমানে নন-ফরোয়ার্ড-লক করা অ্যাপ্লিকেশনগুলি / ডেটা / অ্যাপ / অ্যাপে অবস্থিত। শেল ব্যবহারকারী একটি নির্দিষ্ট .apk পড়তে পারে, যদিও এটি ডিরেক্টরিটি তালিকাভুক্ত করতে পারে না। ভবিষ্যতে প্রকাশে নামকরণের কনভেনশনটি কিছুটা পরিবর্তন করা হবে, সুতরাং এটির অবশিষ্টটি একই হিসাবে গণনা করবেন না, তবে আপনি যদি প্যাকেজ ম্যানেজারের কাছ থেকে .apk এর পথটি পান তবে আপনি এটি শেলটিতে ব্যবহার করতে পারেন।
প্রাক-ইনস্টল করা অ্যাপ্লিকেশনগুলি সাধারণত / সিস্টেম / অ্যাপে থাকে এবং ব্যবহারকারী ইনস্টল থাকা অ্যাপ্লিকেশনগুলি / ডেটা / অ্যাপে থাকে।
আপনি "অ্যাডবি টান" ব্যবহার করতে পারেন, তবে আপনাকে APK ফাইলের পুরো পথটি জানতে হবে। এমুলেটরটিতে আপনি "অ্যাডবি শেল" + "এলএস" ব্যবহার করে একটি ডিরেক্টরি তালিকা পেতে পারেন। তবে একটি অ্যান্ড্রয়েড ডিভাইসে, আপনি সুরক্ষা কারণে "" ডেটা "ফোল্ডারে সেটি করতে সক্ষম হবেন না। তাহলে আপনি কীভাবে এপিএল ফাইলটির পুরো পথটি খুঁজে বের করবেন?
আপনি প্যাকেজম্যানেজারকে জিজ্ঞাসা করে এমন একটি প্রোগ্রাম লিখে সমস্ত অ্যাপ্লিকেশনগুলির সম্পূর্ণ তালিকা পেতে পারেন। শর্ট কোড স্নিপেট নীচে:
PackageManager pm = getPackageManager();
List<PackageInfo> pkginfo_list = pm.getInstalledPackages(PackageManager.GET_ACTIVITIES);
List<ApplicationInfo> appinfo_list = pm.getInstalledApplications(0);
for (int x=0; x < pkginfo_list.size(); x++){
PackageInfo pkginfo = pkginfo_list.get(x);
pkg_path[x] = appinfo_list.get(x).publicSourceDir; //store package path in array
}
আপনি এমন অ্যাপসও সন্ধান করতে পারেন যা এই জাতীয় তথ্য দেবে। তাদের প্রচুর আছে। এটি ব্যবহার করে দেখুন (অ্যাপসেন্ডার)।
আপনি যদি একটি নির্দিষ্ট অ্যাপ্লিকেশনটির সন্ধান করেন তবে একটি দ্রুত এবং নোংরা সমাধান হ'ল বাগেরপোর্টকে গ্রেপ করা:
$ adb bugreport | grep 'dir=/data/app'
আমি জানি না যে এটি একটি বিস্তৃত তালিকা সরবরাহ করবে, সুতরাং এটি প্রথমে অ্যাপটি চালাতে সহায়তা করতে পারে may
মার্কেটপ্লেস থেকে ইনস্টল করুন
এটি প্রতিষ্ঠানের পরে এপিপি রাখা উচিত কিনা এটি মার্কেটপ্লেসের আচরণ। গুগল প্লে ইনস্টলেশনের পরে এপিকে রাখে না। অন্যান্য তৃতীয় পক্ষের মার্কেটপ্লেসে বিভিন্ন আচরণ থাকতে পারে।
বিকাশ / ডিবাগ সরঞ্জাম থেকে ইনস্টল করুন (অ্যাডবি, গ্রহন, অ্যান্ড্রয়েড স্টুডিও)
যখন আমরা এপিকে ডিবাগ সরঞ্জাম থেকে সরাসরি ইনস্টল করি, সরাসরি অনুরোধ করি adb install
বা গ্রহণ / অ্যান্ড্রয়েড স্টুডিও থেকে, adb push
অ্যাপকে সাধারণত পাবলিক রিড এবং লিখনযোগ্য ডিরেক্টরিতে স্থানান্তরিত করা হয় /data/local/tmp/
। এর পরে, সরঞ্জামটি pm
ইনস্টল করতে কমান্ডটি ব্যবহার করবে , এটি /data/local/tmp/
সফল ইনস্টলেশন পরবর্তী অস্থায়ী এপিকে মুছে ফেলবে ।
নিম্নলিখিতগুলির মতো আমরা ডিবাগ আউটপুট থেকে এই তথ্যগুলি পেতে পারি।
$ adb install bin/TestApplication.apk
3155 KB/s (843375 bytes in 0.260s)
pkg: /data/local/tmp/TestApplication.apk
Success
সিস্টেম কীভাবে এপিকে রাখে
অবশ্যই সিস্টেমটি কোথাও সমস্ত অ্যাপস সংরক্ষণ করতে হবে। বিভিন্ন ধরণের অ্যাপের উপর ভিত্তি করে অ্যাপসকে রাখার জন্য সিস্টেমের জন্য তিনটি জায়গা রয়েছে:
স্টক অ্যাপ্লিকেশন জন্য
এগুলি সাধারণত চালনার মাধ্যমে ডিভাইসে প্রেরণ করা হয়, সিস্টেম চলমান এবং গুগল পরিষেবাগুলির জন্য মূল অ্যাপ্লিকেশন সহ, আপনি সেগুলি ডিরেক্টরিতে /system/app
এবং এর অধীনে খুঁজে পেতে পারেন /system/priv-app
।
ব্যবহারকারী ইনস্টল অ্যাপ
বেশিরভাগ অ্যাপস এই বিভাগে আসে into এই অ্যাপসটি সাধারণত ব্যবহারকারীদের দ্বারা বা বিকল্প adb install
ছাড়াই মার্কেটপ্লেস থেকে ইনস্টল করা হয় -s
। /data/app
কোনও রুটযুক্ত ডিভাইসের জন্য আপনি তাদের ডিরেক্টরিতে দেখতে পারেন ।
এসডিকার্ডে অ্যাপ
যদি apk android:installLocation="auto"
এর ম্যানিফেস্টের সাহায্যে এসডিকার্ডে এর ইনস্টল অবস্থান সক্ষম করে , তবে অ্যাপ্লিকেশনটি সিস্টেমের অ্যাপ ম্যানেজার মেনু থেকে এসডকার্ডে স্থানান্তরিত হতে পারে। এই অ্যাপসটি সাধারণত এসডিকার্ডের সুরক্ষিত ফোল্ডারে থাকে /mnt/sdcard/asec
।
এসডিকার্ডে ইনস্টল করার লোকেশনকে বাধ্য করার আন্তরিক উপায় হ'ল কমান্ডটি ব্যবহার করা adb install -s apk-to-install.apk
।
একটি নোট হিসাবে, প্রাক ইনস্টল অ্যাপ্লিকেশন ফাইলগুলি একটি একক .apk
ফাইলে নেই। ডিরেক্টরিতে /system/app
বা /system/priv-app
নতুন অ্যান্ড্রয়েড রিলিজের জন্য প্রতিটি প্রাক ইনস্টল থাকা অ্যাপ্লিকেশনের জন্য ফাইলযুক্ত একটি ফোল্ডার রয়েছে ।
আপনি এডিবির সাহায্যে অ্যাপ্লিকেশনগুলি টানতে পারেন। তারা / ডেটা / অ্যাপ / এ রয়েছে, আমি বিশ্বাস করি।
adb pull (location on device) (where to save)
নোট করুন যে অনুলিপিযুক্ত সুরক্ষিত অ্যাপ্লিকেশনগুলি টানতে আপনাকে আপনার ফোনটি রুট করতে হবে।
আপনি যদি রুট হয়ে থাকেন তবে রুট এক্সপ্লোরার অ্যাপটি ডাউনলোড করুন। রুট ব্যবহারকারীদের জন্য সেরা ফাইল ম্যানেজার। যাইহোক, সিস্টেম / অ্যাপ্লিকেশনটিতে ফোনের সাথে আসা সমস্ত ডিফল্ট অ্যাপস রয়েছে এবং আপনি যে অ্যাপ্লিকেশন ইনস্টল করেছেন সেগুলির সমস্ত অ্যাপস ডেটা / এপিকে রয়েছে। আপনি যে apk চান তার উপর কেবল দীর্ঘ টিপুন (রুট এক্সপ্লোরার থাকা অবস্থায়), আপনার / এসডিকার্ড ফোল্ডারে যান এবং কেবল পেস্ট করুন।
আপনি যদি গ্রিপস গোটো ডিডিএমএস ব্যবহার করেন এবং তারপরে সেখানে ফাইল এক্সপ্লোরার করে থাকেন আপনি সিস্টেম / অ্যাপস ফোল্ডারটি দেখতে পাবেন এবং অ্যাপসটি সেখানে রয়েছে
আমি যখন আমার অ্যাপ্লিকেশনটি এমুলেটরে ইনস্টল করেছি, এটি আমার .apk ফাইলটি এতে দেখিয়েছে
ডেটা / অ্যাপ্লিকেশন তারপরে আমি ls ডেটা / অ্যাপ // ব্যবহার করেছি এটি উপস্থিত আছে কি নেই তা দেখার জন্য
আপনি আপনার অ্যাপ্লিকেশন ইনস্টল করার পরে ls কমান্ড ভি শেলটি ব্যবহার করুন এবং পছন্দসই ডিরেক্টরিটি পরীক্ষা করুন তবে এটি নির্ভর করে আপনি কোন ধরণের অ্যাপ্লিকেশন ইনস্টল করার চেষ্টা করছেন। কোনও জিনিস ভুল হলে আমি পয়েন্টটি ইনস্টল করতে এই পদ্ধতিটি ব্যবহার করেছি।
এটির জন্য apk
, প্লে স্টোর থেকে ব্লুটুথ অ্যাপ প্রেরকটি ডাউনলোড করুন এবং ইনস্টল করুন। একবার ইনস্টলেশন সম্পূর্ণ হলে ব্লুটুথ অ্যাপ প্রেরকটি খুলুন। এটি (.apk)
আপনার ডিভাইসে ইনস্টল করা সমস্ত অ্যাপ্লিকেশন দেখায় , তারপরে আপনি সহজেই ব্লুটুথের মাধ্যমে অ্যাপটিকে আপনার পিসিতে স্থানান্তর করতে পারেন।
নির্বাচিত উত্তরে যা লেখা আছে তার বিপরীতে, আপনার রুট লাগবে না এবং ইনস্টল করা অ্যাপ্লিকেশনগুলির APK গুলি পাওয়া সম্ভব, যা আমি আমার অ্যাপে এটি এখানে করেছি ( এখানে )। উদাহরণ:
List<PackageInfo> packages=getPackageManager().getInstalledPackages(0);
তারপরে তালিকার প্রতিটি আইটেমের জন্য আপনি প্যাকেজআইএনফো.এপলিকেশনআইএনফো.সোর্সডির অ্যাক্সেস করতে পারবেন , এটি ইনস্টলড অ্যাপের APK এর পুরো পথ।
আমি এই পোস্টে এসেছি কারণ আমি কিছু পছন্দ করেছি এমন অ্যাপটি পুনরায় ইনস্টল করতে চেয়েছিলাম। যদি এটি আপনার ক্ষেত্রে হয় তবে কেবল গুগল প্লেতে যান এবং আমার অ্যাপ্লিকেশন, সমস্ত ট্যাব সন্ধান করুন এবং আপনি পছন্দ করেছেন এমন কিছু অ্যাপ পুনরায় ইনস্টল করার একটি উপায় খুঁজে পাবেন। আমি একটি সমস্যার মুখোমুখি হয়েছি যা আমি একটি অ্যাপ্লিকেশন অনুসন্ধান করে খুঁজে পাই না, তবে এটি আমার অ্যাপ্লিকেশনগুলিতে ছিল যাতে আমি আমার নতুন মোবাইলটি পুনরায় ইনস্টল করতে পারি;)