আপনার অ্যাপ যদি তার ব্যবহারের কেস সম্পূর্ণ করার জন্য অন্যান্য অ্যাপের সাথে ইন্টার্যাকশনের উপর নির্ভর করে, তাহলে Android 11 (API লেভেল 30) এবং তার পরবর্তী ভার্সনে প্যাকেজের দৃশ্যমানতা পরিবর্তন কীভাবে আপনার অ্যাপকে প্রভাবিত করে তা পরীক্ষা করা উপযোগী।
এই নির্দেশিকাটি আচরণগত পরিবর্তনগুলি কীভাবে পরীক্ষা করা যায় সে সম্পর্কে কিছু পরামর্শ দেয় এবং আপনার অ্যাপ কীভাবে প্রভাবিত হতে পারে তা আরও বিস্তারিতভাবে নির্ধারণ করতে লগ মেসেজ কনফিগার করতে সাহায্য করে।
আচরণে হওয়া পরিবর্তন পরীক্ষা করুন
এই আচরণগত পরিবর্তন আপনার অ্যাপকে প্রভাবিত করে কিনা তা পরীক্ষা করতে, নিম্নলিখিত ধাপগুলি সম্পূর্ণ করুন:
- Android Studio 3.6.1 বা তার পরবর্তী যেকোনও ভার্সন ইনস্টল করুন।
- Android Studio-তে কাজ করে এমন Gradle-এর লেটেস্ট ভার্সন ইনস্টল করুন।
- আপনার অ্যাপের
targetSdkVersion-কে30বা তার থেকে বেশি ভার্সনে সেট করুন। - আপনার অ্যাপের ম্যানিফেস্ট ফাইলে
<queries>এলিমেন্ট অন্তর্ভুক্ত করবেন না। getInstalledApplications()বাgetInstalledPackages()নম্বরে কল করুন। দুটি পদ্ধতিই সফল হলে ফিল্টার করা তালিকা দেখায়।- আপনার অ্যাপের কোন কোন ফিচার কাজ করছে না তা দেখুন।
- এইসব ফিচার ঠিক করতে উপযুক্ত
<queries>এন্ট্রি যোগ করুন।
প্যাকেজ ফিল্টার করার জন্য লগ মেসেজ কনফিগার করুন
অ্যাপের ডিফল্ট দৃশ্যমানতা কীভাবে আপনার অ্যাপকে প্রভাবিত করে সেই সম্পর্কে আরও বিশদ জানতে, আপনি প্যাকেজ ফিল্টারিংয়ের জন্য লগ মেসেজ চালু করতে পারেন। আপনি Android Studio-তে কোনও টেস্ট অ্যাপ বা ডিবাগ করা যায় এমন অ্যাপ ডেভেলপ করলে, সিস্টেম লগ আপনাকে এই সুবিধা প্রদান করে। অন্যথায়, এটি ম্যানুয়ালি চালু করতে আপনি টার্মিনাল উইন্ডোতে নিম্নলিখিত কমান্ড রান করতে পারেন:
adb shell pm log-visibility --enable PACKAGE_NAME
তারপর, যখনই কোনও PackageManager অবজেক্টের রিটার্ন ভ্যালু থেকে প্যাকেজ ফিল্টার করা হয়, আপনি Logcat-এ নিম্নলিখিত মেসেজের মতো একটি মেসেজ দেখতে পাবেন:
I/AppsFilter: interaction: PackageSetting{7654321 \
com.example.myapp/12345} -> PackageSetting{...} BLOCKED