অ্যান্ড্রয়েড প্রকল্প থেকে সমস্ত অব্যবহৃত সংস্থানগুলি সরান


386

আমি আমার অ্যান্ড্রয়েড রেজ ডিরেক্টরি থেকে সমস্ত অব্যবহৃত লেআউট, স্ট্রিং, ড্রইবল, কালার ইত্যাদি মুছে ফেলতে চাই। এমন কোন সরঞ্জাম রয়েছে যা আমাকে ফাইলগুলির একটি তালিকা দেবে এবং আমি আমার সংগ্রহশালা এবং নির্দিষ্ট ফাইলগুলির মধ্যে থাকা উপাদানগুলি (যেমন অব্যবহৃত স্ট্রিং এন্ট্রি) ব্যবহার করতে পারি না সেগুলি থেকে সরিয়ে ফেলতে পারি?

উত্তর:


734

আপনি সহজেই অ্যান্ড্রয়েড স্টুডিও থেকে অব্যবহৃত সংস্থানগুলি অনুসন্ধান করতে পারেন। কেবল CtrlAltShifti" অব্যবহৃত সংস্থানগুলি " চাপুন এবং টাইপ করুন (উদ্ধৃতি ব্যতীত)। যে lint চালানো হবে। লিন্ট কমান্ড চালানোর জন্য দুর্দান্ত সহজ উপায় (এবং আইডিই থেকে অন্যান্য স্টাফ)।

অথবা

ইন অ্যান্ড্রয়েড স্টুডিও মেনু > Refactor > অব্যবহৃত সম্পদ সরান ...

আপনি যে সংস্থানগুলি সরাতে চান তা নির্বাচন করুন। সংস্থান আইটেমটিতে ডান-ক্লিক করে আপনি যে সংস্থানগুলি রাখতে চান তা বাদ দিতে পারেন।

একবারে সমস্ত সংস্থান সরানোর জন্য ডো রিফ্যাক্টর ব্যবহার করুন ।

আপডেট:OptionShifti ম্যাক জন্য ব্যবহার করুন


55
ম্যাকের জন্য
সেন্টিমিটার

5
@ মাইকমিলা যে ফাইলগুলি মুছতে চান তার উপর ডান ক্লিক করুন এবং "লিঙ্ক ফিক্সগুলি প্রয়োগ করুন" বলে বিকল্পটিতে ক্লিক করুন। এক সাথে একাধিক ফাইল মুছতে, সেগুলি নির্বাচন করুন।
সাকেত জৈন

28
পরামর্শ দিন যে এই পদ্ধতির ব্যবহারটি প্রোগ্রামিয়মে ব্যবহারযোগ্য যে কোনও সংস্থান সরিয়ে ফেলবে।
প্রকাশ সরকার

23
আমার পুরো প্রকল্পটি ভেঙে
ফেলেছে

7
AS 3.0 সহ, এই বৈশিষ্ট্যটি কিছু ব্যবহৃত ব্যবহৃত লেআউট ফাইল সরিয়ে দেয়। এটি চেষ্টা করার আগে একটি ব্যাকআপ করা বা গিট কমিট করা ভাল।
স্টোনল্যাম

99

এডিটি 16 এর পরে আপনি অ্যান্ড্রয়েড লিন্ট ব্যবহার করতে পারেন । এটি সত্যই আশ্চর্যজনক সরঞ্জাম।

অ্যান্ড্রয়েড লিন্ট এডিটি 16 (এবং সরঞ্জাম 16) এর জন্য একটি নতুন সরঞ্জাম যা সম্ভাব্য বাগগুলির জন্য অ্যান্ড্রয়েড প্রকল্পের উত্সগুলি স্ক্যান করে।

এটির জন্য অনুসন্ধান করা ত্রুটিগুলির কয়েকটি উদাহরণ এখানে রয়েছে:

  • অনুপস্থিত অনুবাদ (এবং অব্যবহৃত অনুবাদগুলি)
  • লেআউট পারফরম্যান্সের সমস্যাগুলি (পুরানো লেআউটটপট সরঞ্জামটি সন্ধান করার জন্য ব্যবহৃত সমস্ত সমস্যা এবং আরও অনেক কিছু)
  • অব্যবহৃত সম্পদ
  • অসামঞ্জস্য অ্যারে মাপ (যখন অ্যারেগুলি একাধিক কনফিগারেশনে সংজ্ঞায়িত করা হয়)
  • অ্যাক্সেসযোগ্যতা এবং আন্তর্জাতিকীকরণ সমস্যা (হার্ডকোডযুক্ত স্ট্রিং, অনুপস্থিত বিষয়বস্তুর বিবরণ ইত্যাদি)
  • আইকন সমস্যা (যেমন অনুপস্থিত ঘনত্ব, সদৃশ আইকন, ভুল আকার, ইত্যাদি)
  • ব্যবহারযোগ্যতা সমস্যা (যেমন পাঠ্যের ক্ষেত্রে কোনও ইনপুট প্রকারের উল্লেখ না করা)
  • ত্রুটিগুলি এবং আরও অনেক কিছু প্রকাশ করুন।

তবে এতে কিছু সমস্যা আছে (তারা ইতিমধ্যে স্থির হয়েছে কিনা তা জানেন না) এবং আপনি যদি শত শত অনুমিত অব্যবহৃত সংস্থানগুলি মুছে ফেলতে চান তবে আমি রিসোট অপসারণের সময় প্রকল্পটি কয়েকবার ম্যানুয়ালি সংকলন করার পরামর্শ দেব যাতে নিশ্চিত হওয়া যায় যে লিন্ট তা করেন নি প্রয়োজনীয় কিছু অপসারণ।


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

61
অ্যান্ড্রয়েড স্টুডিওতে, আপনি অব্যবহৃত ঘোষণা এবং পদ্ধতিগুলিAnalyze > Inspect Code... সহ অনেকগুলি জিনিস সন্ধান করতে পারেন ।
জোশুয়া পিন্টার

8
উদাহরণস্বরূপ, আপনি যদি কমান্ড লাইনটি ব্যবহার করতে চান:lint --check UnusedResources <project-path>
এপঞ্চি

41
তবে সেগুলি কীভাবে মুছবেন?
মার্টিন ফেফার

1
Extra Translationsএকসাথে / স্বয়ংক্রিয়ভাবে মুছে ফেলার কোনও উপায় আছে কি ?
রিশভ্মজনজ

41

যেহেতু Eclipse এডিটির সমর্থন শেষ হয়ে গেছে, তাই আমাদের অ্যান্ড্রয়েড স্টুডিও ব্যবহার করতে হবে।

অ্যান্ড্রয়েড স্টুডিও ২.০+ ব্যবহার করুন Refactor > Remove Unused Resources...

এখানে চিত্র বর্ণনা লিখুন


2
দেখে মনে হচ্ছে যে এইভাবে প্রোগ্রামযুক্তভাবে ব্যবহৃত সংস্থানগুলি সরিয়ে দেয়
THZ

1
পরবর্তী পদক্ষেপে পর্যালোচনা করতে ভুলবেন না, অন্যথায়, কিছু ব্যবহৃত ফাইলও মুছে ফেলা হয়।
করণ শর্মা

38

অ্যান্ড্রয়েডের জন্য গ্রেডল বিল্ড সিস্টেমটি "রিসোর্স সঙ্কুচিত" সমর্থন করে: প্যাকেজড অ্যাপ্লিকেশনে বিল্ড সময়, অব্যবহৃত সম্পদগুলির স্বয়ংক্রিয় অপসারণ। আপনার প্রকল্পের সংস্থানগুলি যা রানটাইমের সময় আসলে প্রয়োজন হয় না তা সরিয়ে দেওয়ার পাশাপাশি এটি আপনার অ্যাপ্লিকেশনটির প্রয়োজন না হলে আপনি যে লাইব্রেরিগুলির উপর নির্ভরশীল সেগুলি থেকেও সরিয়ে দেয়।

এটি সক্ষম করতে আপনার গ্রেড ফাইলটিতে লাইন সঙ্কুচিত রিসোর্সগুলি সত্য যুক্ত করুন।

   android {
        ...

        buildTypes {
            release {
                minifyEnabled true //Important step
                shrinkResources true
            }
   }
}

অফিসিয়াল ডকুমেন্টেশন এখানে দেখুন,

http://tools.android.com/tech-docs/new-build-system/resource-shrinking


2
সঙ্কুচিত সংস্থানগুলি সক্ষম করার জন্য অগ্রগতি প্রয়োজন ard আমি এইচভি সমস্যাগুলি অগ্রগামী সক্ষম করতে :-(
টিক্সিয়ন

সংক্ষিপ্ত সংস্থানগুলি কেবল তখনই বিবেচনায় নেওয়া হয় যদি মিনিফেইনডেবিল্ডটি সত্য হয় minifyEnabled true
এলডোপজ

16

আমরা এমন একটি সরঞ্জাম উন্মুক্ত করি যা আপনার অ্যান্ড্রয়েড প্রজেক্টের লিঙ্ক আউটপুটের ভিত্তিতে সমস্ত অব্যবহৃত সংস্থানগুলি সরিয়ে দেয়। এটি এখানে পাওয়া যাবে: https://github.com/KeepSafe/android-resource-remover


আমি কীভাবে এটি আমার অ্যান্ড্রয়েড স্টুডিও প্রকল্প থেকে অব্যবহৃত সংস্থান সরানোর জন্য ব্যবহার করব।
ইয়ামিনী

15

লিন্ট চালানোর সময় আপনি যদি একাধিক স্বাদ ব্যবহার করছেন তবে সাবধান হন। আপনি যে গন্ধটি বেছে নিয়েছেন তার উপর নির্ভর করে লিন্ট মিথ্যা অব্যবহৃত সংস্থান দিতে পারে।


কীভাবে এড়ানো যায়?
নিকউনুশেখ

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

8

মেনুতে অ্যান্ড্রয়েড স্টুডিও ২.০ এবং তারপরে রিফ্যাক্টর নির্বাচন করুন -> অপ্রয়োজনীয় সম্পদ সরান ক্লিক করুন ...

(বা)

শর্টকাট উপলব্ধ

প্রেস Ctlr + alt + করতে Shift + আমি এক ডায়লগ বক্স apper, তারপর লিখব অব্যবহৃত , আপনি নির্বাচন বিকল্পের সংখ্যার খুঁজে পেতে এবং অব্যবহৃত সম্পদ সরাবে


7

অ্যান্ড্রয়েড স্টুডিওতে,

বিশ্লেষণ করুন -> নাম অনুসারে পরিদর্শন চালান

(ম্যাক শিফট + কমান্ড + বিকল্প + আই, উইন্ডোজ / লিনাক্সে Ctrl + Shift + A এর শর্টকাট)।

এবং 'অব্যবহৃত সংস্থানসমূহ' টাইপ করুন।

এইভাবে আপনি অব্যবহৃত সংস্থান, পরিবর্তনশীল, চিহ্ন, স্থানীয়করণ, লাইব্রেরি .. ইত্যাদি সরিয়ে ফেলতে পারেন।

তালিকা থেকে কাঙ্ক্ষিত পরিদর্শন নির্বাচন করুন, তারপরে পরিদর্শন সুযোগ -> ঠিক আছে নির্বাচন করুন এখানে চিত্র বর্ণনা লিখুন


6

মনোযোগ Android Wear বিকাশকারীগণ : "অব্যবহৃত রিসোর্সগুলি সরান" এমন এক্সএমএল ফাইলটি মুছে ফেলবে যেখানে আপনি সক্ষমতার নামটি ঘোষণা করেন (res / মান / পরিধান.এক্সএমএল) এবং ফোনটি ঘড়ির সাথে সংযোগ করতে সক্ষম হবে না। আমি আমার অ্যাপ্লিকেশনটিতে এই বাগটি বের করার চেষ্টা করতে ঘন্টা ব্যয় করেছি।


এবং এটি বৃত্তাকার মিপম্যাপ আইকনগুলিও সরিয়ে দেয়, উদাহরণস্বরূপ।
আর্টেম

সঠিক। সাধারণভাবে, 'অব্যবহৃত রিসোর্সগুলি সরান' মোটেও সুপারিশ করা উচিত নয় কারণ এটি প্রচুর আনট্রেসযোগ্য বাগ তৈরি করতে পারে।
স্টিলিওসফ

4

স্ট্রিং.এক্সএমএল পরীক্ষা করতে।

এটি সহজ (অন্তত আমার গ্রহের সংস্করণে)

অ্যান্ড্রয়েডের জন্য গ্রহপসে (আমার কাছে v22.6.2-1085508 সংস্করণ রয়েছে)

  • "প্যাকেজ এক্সপ্লোরার" এ প্রকল্পের নামের উপর বাম ক্লিক করুন
  • "অ্যান্ড্রয়েড সরঞ্জাম" নির্বাচন করুন।
  • "রান লিন্ট: সাধারণ ত্রুটিগুলির জন্য পরীক্ষা করুন" নির্বাচন করুন।

এখন আপনি স্ট্রিং.এক্সএমএল খুললে দেখবেন অব্যবহৃত স্ট্রিংটি হাইলাইট হয়েছে।

আপনি অন্যান্য সম্ভাব্য সমস্যাগুলি সমাধান করতে পারেন।


+1 চমৎকার সমাধান, বন্ধু। এটি নির্বাচিত চেকগুলির জন্যও লিন্ট চালানোর অনুমতি দেয় - ঠিক আমার যা প্রয়োজন তা .... (অ্যান্ড্রয়েড স্টুডিওর সাথে প্রায় একই রকম: প্রজেক্ট এক্সপ্লোরারটিতে ডান ক্লিক করুন , বিশ্লেষণ নির্বাচন করুন , পরিদর্শন কোড নির্বাচন করুন বা নাম অনুসারে পরিদর্শন চালান ): ডি
ত্রিনিমন

এটি এই অব্যবহৃত স্ট্রিংগুলি সরাতে খুব বেশি সহায়তা করে না। আপনি কি আগের মতো এগুলি ম্যানুয়ালি সরানোর পরামর্শ দিচ্ছেন?
স্টান

"আপনার প্রকল্পটি পরিষ্কার করার" "লিঙ্ক" সত্যিই একটি দুর্দান্ত উপায়। আপনাকে এখনও সেগুলি ম্যানুয়ালি অপসারণ করতে হবে, তবে সেগুলি হাইলাইট করা হয়েছে এবং আপনি অবিলম্বে দেখতে পাবেন যে সেগুলি ব্যবহৃত হয়নি। এটি মাঝারি আকারের প্রকল্পের জন্য কয়েক মিনিটের কাজ। :)
গ্যাব্রিয়েল ক্লিন

3

হতে পারে দরকারী অ্যান্ড্রাউন্ড অব্যবহৃত সংস্থানসমূহ একটি জাভা অ্যাপ্লিকেশন যা অব্যবহৃত সংস্থানগুলির জন্য আপনার প্রকল্পটি স্ক্যান করবে scan অব্যবহৃত সংস্থান অকারণে স্থান নেয়, বিল্ড সময় বাড়িয়ে দেয় এবং আইডিইর স্ব-পরিপূরণ তালিকাটিকে বিশৃঙ্খলা করে।

এটি ব্যবহার করতে, আপনার ওয়ার্কিং ডিরেক্টরিটি আপনার অ্যান্ড্রয়েড প্রকল্পের মূল এবং এটি চালানোর বিষয়টি নিশ্চিত করুন:

java -jar AndroidUnusedRes स्रोत.jar

https://code.google.com/p/android-unused-resources/


1
যেখানেই আমি এটি রেখেছি তা বলার অপেক্ষা রাখে যে এটি সঠিক প্রকল্পের মূল নয়
কিংস্টন

2

সংক্ষিপ্ত সংস্থানগুলি সত্য হিসাবে সংজ্ঞায়িত করার সময় আমরা কোন সংস্থান রাখতে চাই এবং কোনটি রাই / কাঁচা ফোল্ডারে কিপ.এসএমএল নামে এক্সএমএল ফাইল যুক্ত করি না তাও আমরা সংজ্ঞায়িত করতে পারি resources

আরও একটি একক স্বাক্ষরিত বিল্ড উত্পন্ন করার আগে এবং এপিপি এনালাইজার সরঞ্জামটি যা চেক-এক্সএইচডিপি-ভি 4-তে ম্যাসেঞ্জার_বুটন_স্যান্ড_উন্ড_শাদো.পিএনজি দেখায় যা আমি এই পরীক্ষার জন্য সরাতে চাই

<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools"
       tools:shrinkMode="strict"
       tools:discard="@drawable/com_facebook_button_icon_blue.png,
       @drawable/com_facebook_button_icon_white.png,
       @drawable/com_facebook_button_like_icon_selected.png,
       @drawable/messenger_button_send_round_shadow.png,
       @drawable/messenger_*"  />

মেসেঞ্জার_ * করে অঙ্কনযোগ্য ফোল্ডারে নাম মেসেঞ্জার থেকে শুরু করা সমস্ত ফাইল মুছে ফেলা হবে বা অন্য উপায়ে আমি নির্দিষ্ট ফাইলটি মুছে ফেলার জন্য সংজ্ঞায়িত করেছি

যাতে আপনি লাইব্রেরি থেকে ফাইলগুলি সরিয়ে ফেলতে পারেন তবে আপনি @ লেআউট / লেআউট নাম দ্বারা লেআউটগুলিও সরাতে পারবেন যদি সেই অঙ্কনযোগ্য বিন্যাস দ্বারা ব্যবহৃত হয় এবং তাই ....


1

ভাল সরঞ্জামগুলির পরামর্শ দেওয়ার জন্য এখানে দুর্দান্ত উত্তর রয়েছে

তবে আপনি যদি পিএনজি-ড্রইবলগুলি (বা অন্যান্য চিত্র ফাইলগুলি ) অপসারণ করতে চান তবে আপনার প্রকল্পের বাইরে সমস্ত অঙ্কনযোগ্য-এক্সএক্সএক্সএক্সএক্সএক্সএক্স ফোল্ডারগুলি অস্থায়ী ফোল্ডারে স্থানান্তরিত করার বিষয়েও বিবেচনা করা উচিত, তারপরে একটি পুনর্নির্মাণ করুন এবং বিল্ডটি একবার দেখুন বার্তা তালিকা যা আপনাকে বলবে যে কোনটি অনুপস্থিত রয়েছে।

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


এটি সময় সাপেক্ষ, কিন্তু আমি সম্মত এটিও একটি সমাধান। আমি এখনই এটি করছি
ডিকা

0

অ্যান্ড্রয়েড অ্যাসেট ভিউয়ারটি আপনার .apk এর মধ্যে প্যাক করা গ্রাফিকগুলি (অঙ্কনযোগ্য হিসাবে) দর্শনীয়ভাবে দেখার জন্য ডিজাইন করা হয়েছে (আপনি যদি চান তবে আপনার রেজ ফোল্ডারের একটি জিপ ফাইলও আপলোড করতে পারেন):

http://www.cellebellum.net/AndroidAssetsViewer/

সুতরাং অব্যবহৃত সংস্থানগুলি অপসারণ করার জন্য, লিন্ট চেকগুলির সাথে মিল রেখে এটি কার্যকরভাবে কাজ করতে পারে যা সেখানে থাকা উচিত যা কিছু রয়েছে তা নিশ্চিত করতে সহায়তা করে। এটি আপনাকে আপনার আঁকতে সক্ষমদের সাথে আরও কয়েকটি সম্ভাব্য সমস্যা সনাক্ত করতে সহায়তা করে: ভুল বালতি, ভুল গ্রাফিক ইত্যাদি with


0

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

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