ডিভাইস বন্ধ হওয়ার পরে অ্যান্ড্রয়েড অ্যাপ্লিকেশন কেন আগের সংস্করণে ফিরে আসে?


11

অ্যান্ড্রয়েড অ্যাপ্লিকেশন সহ এই খুব আশ্চর্যজনক আচরণ পর্যবেক্ষণ করেছে। আনুমানিক দৃশ্য:

  1. সংস্করণ ডিভাইসে ইনস্টল করা
  2. প্রয়োগ ঠিকঠাক কাজ করে
  3. ডিভাইসে সংস্করণ বি ইনস্টল করা হয়েছে (বি> এ)
  4. প্রয়োগ ঠিকঠাক কাজ করে
  5. ব্যাটারি ড্রেনের কারণে ডিভাইসটি বন্ধ হয়ে যায়
  6. ডিভাইস চালু আছে
  7. অ্যাপ্লিকেশনটির সংস্করণ এ আবার ডিভাইসে চলে

অতিরিক্ত তথ্য:

  • অ্যাপ্লিকেশনটি গুগল প্লেয়ের মাধ্যমে বিতরণ করা হয়নি, তবে ইউএসবি সংযোগের মাধ্যমে প্রাক-ভিত্তিতে ইনস্টল করা হয়েছে (দ্রষ্টব্য: অ্যাপ্লিকেশনটি উত্পাদন চলছে; এটি অ্যান্ড্রয়েডস্টুডিওর মাধ্যমে ইনস্টল করা হয়নি)।
  • কিয়স্ক
  • Android 5.1 (API 22)

আমার ধারণা আমি দুটি প্রশ্ন পেয়েছি:

  • কেন ডিভাইসটি APK এর পুরানো সংস্করণটিকে ক্যাশে করেছে (এবং এটি এটি কোথায় ক্যাশে করেছে)?
  • কোন পরিস্থিতিতে অ্যাপ্লিকেশনগুলি আগের সংস্করণগুলিতে ফিরে যেতে পারে?

সম্পাদনা করুন (আরও তথ্য):

  • দেখে মনে হচ্ছে এপিপিটি আবার ঘুরিয়ে দেওয়ার পরে, অ্যাপ্লিকেশনটি কিছু অনুমতি হারিয়েছে (সম্ভবত সমস্ত কিছু)। সিকিউরিটিএক্সসেপশন অ্যান্ড্রয়েডের এপিআই থেকে ফেলে দেওয়ার কারণে রোল-ব্যাকের আগে কাজ করা কার্যকারিতা। অ্যান্ড্রয়েডের এই সংস্করণটিতে এখনও রানটাইম অনুমতি নেই যদিও এটি ঘটে!
  • ট্যাবলেটের ফাইলসিস্টেম ব্রাউজিং পর, আমি প্রকৃতপক্ষে দেখতে বিভিন্ন অ্যাপ্লিকেশনের APK গুলি অনুরূপ পাথ অধীনে অবস্থিত: /data/app/com.myapp-2/base.apk, /data/app/com.myapp-3/base.apk, ইত্যাদি

আমার বর্তমান অনুমানটি হ'ল ব্যাটারি ড্রেনের ফলে ট্যাবলেটটি তার অবস্থার "রিসেট" করে দেয় (উদাহরণস্বরূপ, ঘড়িটিও পুনরায় সেট করা হয়) এবং এটি আবার চালিত হওয়ার পরে এটি অ্যাপ্লিকেশনগুলির APK এর মধ্যে বিভ্রান্ত হয় এবং ভুলটিকে লোড করে।

তবে এটি কেন করবে বা কীভাবে এই আচরণটি রোধ করবে সে সম্পর্কে আমার কোনও ধারণা নেই।


আমিও এই আচরণের মুখোমুখি হয়েছি। তাত্ক্ষণিকভাবে চালনার কারণে এটি ঘটে কারণ এটি apk বিচ্ছিন্ন হয়ে যায় এবং ডিভাইসটি পুনরায় আরম্ভ করার ফলে প্রক্রিয়াটি ভেঙে যায় এবং পূর্ববর্তী সংস্করণে রোলব্যাক হয়।
Touhid উদয়

আপনি কি এই ডিভাইসে পৃথক ব্যবহারকারী ব্যবহার করছেন? কোনও এক অতিথি অধিবেশন হতে পারে?
tynn

এটি ডিভাইস-নির্দিষ্ট (ডিফল্ট ক্যাশে সেটিংস) হতে পারে। আপনি কি অন্যান্য ডিভাইসে পরীক্ষা করেছেন?
তাসলিম ওসেনি

আপনি কি এটি অ্যান্ড্রয়েড এমুলেটরটিতে পরীক্ষা করেছেন?
স্কটিটি

@ তসলিম ওসেনি, ক্ষেত্রের মোতায়েনের জন্য ব্যবহৃত ট্যাবলেটগুলির একটি নির্দিষ্ট মডেল রয়েছে। উপরন্তু, এটি এমন কোনও জিনিস নয় যা সহজেই পুনরুত্পাদন করে। আমরা এটি একবার ল্যাবটিতে দেখেছি।
ভাসিলি

উত্তর:


2

যদি আপনি অ্যান্ড্রয়েড স্টুডিও ৩.৫+ ব্যবহার করেন তবে তাত্ক্ষণিকভাবে চালানোর পরিবর্তে আপনি সম্ভবত প্রয়োগ পরিবর্তনগুলি ব্যবহার করছেন।

এটি অ্যাপকে আবারও না লিখে ডিভাইসে শিপিংয়ের পরিবর্তনের একটি পৃথক পদ্ধতি রয়েছে, তাই প্রচুর পরিমাণে বুঝতে হবে যে রিবুট করার পরে আপনি যে অ্যাপ্লিকেশনটি সরাসরি আপনার অ্যাপ্লিকেশনটি ডিভাইসে এক্সিকিউট করলে চালিত হবে, তার সাথে কিছু করার নেই the যে আগে চলমান ছিল

পরিবর্তনগুলি প্রয়োগ

তাত্ক্ষণিক চালান এবং পুনর্গঠিত এবং গ্রাউন্ড-আপ থেকে প্রয়োগ করা Android এর স্টুডিও 3.5 তে আরও ব্যবহারিক পদ্ধতির প্রয়োগগুলি পরিবর্তনগুলি বলে। পরিবর্তনগুলি প্রয়োগ করুন নির্ভরযোগ্য এবং ধারাবাহিক আচরণটি নিশ্চিত করতে অ্যান্ড্রয়েড ওরিও থেকে প্ল্যাটফর্ম-নির্দিষ্ট এপিআই ব্যবহার করে; তাত্ক্ষণিক চালনার বিপরীতে, পরিবর্তনগুলি প্রয়োগ করুন আপনার APK কে পরিবর্তন করে না।

https://android-developers.googleblog.com/2019/08/android-studio-35-project-marble-goes.html


এই সমস্যাটি উত্পাদনে ঘটে এবং অ্যাপটি অ্যান্ড্রয়েড স্টুডিওর মাধ্যমে ডিভাইসে ইনস্টল করা হয়নি isn't তাত্ক্ষণিকভাবে চালানো বা পরিবর্তনের প্রয়োগগুলি এর সাথে কী করতে পারে?
ভাসিলি

ওহ, দুঃখিত, আমি ধরে নিয়েছি যেহেতু আপনি উল্লেখ করেছেন "অ্যাপ্লিকেশনটি গুগল প্লেয়ের মাধ্যমে বিতরণ করা হয় না, তবে ইউএসবি সংযোগের মাধ্যমে অন-প্রাইম ইনস্টল করা হয়" তাই আমি স্বয়ংক্রিয়ভাবে অ্যান্ড্রয়েড স্টুডিও সম্পর্কে চিন্তাভাবনা করেছি। আপনার আপডেটের পরে এটি পরিষ্কার। আমি আরও কিছুটা
কার্লোস

1

এটি ব্যবহারকারী ইনস্টল করা প্যাকেজগুলি তালিকাভুক্ত করে:

adb shell cmd package help

pm list packages -f -U -3 --show-versioncode

এবং তারপরে পুনরায় ইনস্টল করার আগে সম্পূর্ণ আনইনস্টল করুন:

adb uninstall com.myapp

তাত্ক্ষণিকভাবে চালানো এবং প্যাচ APK প্রয়োগ না করে ( pmসহায়তা আউটপুট দেখুন), এটি বেস বেসটি চালাতে পারে। এটি কোনও কিছুই রোল-ব্যাক করে না, তবে এটি সম্ভবত অন্য একটি এপিপি ওভারলোড হওয়া ছাড়াই এক APK (অ্যান্ড্রয়েড স্টুডিও হট-প্যাচের অ্যাপ্লিকেশনটি স্বয়ংক্রিয় করতে পারে, তবে বুট করার সময় এটি নাও হতে পারে)। তাত্ক্ষণিক রান ব্যবহার না করা এই প্যাচ আপডেটের APK সরিয়ে দেয়; এবং যখন কেবলমাত্র একটি APK আছে, চালানোর মতো আর কিছুই নেই।


3
দুঃখিত, এটি আমার প্রশ্নের যে কোনও উত্তর দেয় তা দেখুন না। আমি এডিবি-র মাধ্যমে এই ফাইলগুলি নিজেও মুছে ফেলতে পারি, তবে কেন এই ঘটনা ঘটে তা আমি বুঝতে চাই happens
ভাসিলি

@ ভ্যাসিলি সম্ভবত কারণ ডালভিক ভিএম তাত্ক্ষণিক রান প্যাচ এপিএকে আলাদাভাবে পরিচালনা করছে। আসল প্রশ্নটি হল, কেন বিভিন্ন সংস্করণে অনুমান করা একই জিনিসটির এমনকি দুটি পৃথক উদাহরণ রয়েছে?
মার্টিন জিটলার

তাত্ক্ষণিকভাবে রান চালানোর কী কী দরকার তা আমি নিশ্চিত নই। এপিপিগুলি অ্যান্ড্রয়েড স্টুডিওর মাধ্যমে ইনস্টল করা হয়নি। যেমনটি আপনি বলেছেন, একটি প্রশ্নের প্রশ্ন হ'ল "একই অ্যাপ্লিকেশনটির জন্য APK এর একাধিক উদাহরণ কেন", তবে আপনার উত্তর কীভাবে উত্তর দেয় তা আমি দেখতে পাই না ...
ভাসিলি ২

@ ভাসিলি এক সাথে একাধিক এপিএল শুরু করা উচিত নয় - এবং যদি, তবে প্যাচ অ্যাপ্লিকেশন অবশ্যই প্রয়োগ করা উচিত। "প্রয়োগ পরিবর্তন" এবং বুট সময়ের মধ্যে পার্থক্য রয়েছে।
মার্টিন জিটলার

1

কেন ডিভাইসটি APK এর পুরানো সংস্করণটিকে ক্যাশে করেছে (এবং এটি এটি কোথায় ক্যাশে করেছে)?

ট্রিকটি এখানে সংস্করণ কোডে রয়েছে। আপনি যখন একটি নতুন সংস্করণ ইনস্টল করবেন, তখন নিশ্চিত হয়ে নিন যে নতুন সংস্করণটির আলাদা সংস্করণ কোড রয়েছে । অ্যান্ড্রয়েড ওএস একই APK এর বিভিন্ন সংস্করণের মধ্যে পার্থক্য করতে সংস্করণ কোডগুলি ব্যবহার করে তাই এটি কাজ করবে।

কেন এই রোলব্যাকটি ঘটে তা সত্যই পরিষ্কার নয়। এটি স্পষ্টতই একটি অদ্ভুত ডিভাইস-নির্দিষ্ট সমস্যা তবে তবুও, ডিভাইসের ডিফল্ট ইনস্টলার, স্টোরেজ / ক্যাশে সেটিংস, ডিভাইস মেমরি, ভাইরাস ইত্যাদিসহ অনেকগুলি উপাদান দায়বদ্ধ হতে পারে including


আশা করি এটা কাজে লাগবে. মেরি কোডিং!


1
আমরা এখনও সমস্যাটি বুঝতে পারি নি, তবে যেহেতু আপনার উত্তরটি কেবলমাত্র তাত্ত্বিকভাবে সম্পর্কিত হতে পারে, অনুগ্রহটি আপনারই!
ভাসিলি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.