অ্যান্ড্রয়েডের জন্য স্কালা প্রোগ্রামিং


258

আমি স্কেলা ২.7.৩ ফাইনালের সাথে স্কালা এবং অ্যান্ড্রয়েডের টিউটোরিয়ালটি অনুসরণ করেছি । ফলস্বরূপ অ্যান্ড্রয়েড অ্যাপ্লিকেশন কাজ করে তবে সর্বাধিক প্রাথমিক অ্যাপ্লিকেশনটি সংকলন করতে কয়েক মিনিট (!) সময় নেয় এবং এটির জন্য 900 কেবি সংক্ষেপিত প্রয়োজন যা মোবাইল অ্যাপ্লিকেশনগুলির জন্য শো স্টপার। অতিরিক্তভাবে, আইডিই মেমরি থেকে এখন এবং তারপরে চলে। আমি ধরে নিই যে এর মতো বড় লাইব্রেরির জন্য তৈরি করা হয়নি ।dexscala-library

  • সুতরাং আমার প্রশ্ন হ'ল: কেউ কি আসলে এটি করেছে এবং এর কোনও প্রতিকার আছে?

উত্তর:


128

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

আমি এটি নথিভুক্ত করি নি, তবে আমি দেখতে পেয়েছি যে অন্য কারও কাছে ইতিমধ্যে রয়েছে:

http://chneukirchen.org/blog/archive/2009/04/programming-for-android-with-scala.html

প্রিগগার্ড একমাত্র সমাধান নয়, আপনি এমন কিছু সন্ধান করতে পারেন যা আপনার কাজের প্রবাহের জন্য উপযুক্ত বা আপনার পরিবেশের জন্য আরও উপযুক্ত।

অতিরিক্তভাবে গুগল সবেমাত্র জ্যাককে উপলব্ধি করেছে, যা বিল্ড এবং মেমরির সময়গুলি হ্রাস করার জন্য প্রচুর পরিমাণে ডিল করে https://source.android.com/s Source/jack.html দেখুন


3
ধন্যবাদ! আমি এটি চেষ্টা করতে হবে। আমি অবাক হই যে এটি যদি Eclipse (স্কেলা এবং অ্যান্ড্রয়েড প্লাগইন ব্যবহার করে) ব্যবহার করা যায়
লেমি

36
লেমি - আপনি এই উত্তরটি গ্রহণ না করার কোনও কারণ আছে? আপনি কি আরও ভাল সমাধান খুঁজে পেতে পারেন?
বোস্টন

3
আমার অভিজ্ঞতার সাথে, বেশিরভাগ অনিয়মিত স্কাল কোডের জন্য ট্রিশেক যথেষ্ট ভাল নয়। এটি কেবল যথেষ্ট আগ্রাসী নয়।
জেমস মুর

45

স্ক্যালায় অ্যান্ড্রয়েড অ্যাপ্লিকেশন তৈরি করতে আপনি এখন গ্রেডলের জন্য অ্যান্ড্রয়েড প্লাগইন ব্যবহার করতে পারেন। ফলস্বরূপ এপিএল ফাইল থেকে চর্বি ছাঁটাতে এটি প্রোগুয়ার্ড সরঞ্জামটি অন্তর্ভুক্ত করে, তাই আপনার প্রয়োজনগুলি পূরণ করছে বলে মনে হয়।

https://github.com/jvoegele/gradle-android-plugin/wiki


দুর্দান্ত কাজ! আমি চেষ্টা করা সমাধানগুলির মধ্যে কোনওটিও বাক্স থেকে বেরিয়ে আসেনি তবে আপনার গ্রেডল প্লাগইন আমাকে দরকারী প্রতিক্রিয়া জানিয়েছে যাতে আমি কী ভুল হচ্ছে তা সহজেই ঠিক করতে পারি।
মেন্ডলট

জেসন, আপনি এখনও এই কাজ করছেন? সর্বশেষ প্রতিশ্রুতি ছিল 9 মাস আগে এবং গ্রেডটি তখন থেকে সংস্করণগুলিকে বিছিন্ন করা হয়েছে।
পিটার আজটাই

পিটার, গ্রেডল এখন অ্যান্ড্রয়েডের নেটিভ বিল্ড সিস্টেম হওয়ায় এই কারণে উন্নয়ন থেমেছে।
জেসন ভয়েগলে

22

1
এই প্লাগইনটি এসবিটির নতুন সংস্করণগুলির সাথে সামঞ্জস্যপূর্ণ নয়। আপনি কি এখনও এই প্লাগইনটি বজায় রাখছেন? একটি SBT প্লাগইন যে হয় এই নবীনতম সংস্করণের সাথে সামঞ্জস্যপূর্ণ অ্যান্ড্রয়েড-SDK-প্লাগইন
ডিসিকিং


15

আমি এই বিস্তারিত সমাধানটি Eclipse 3.7, Scala 2.10 এবং প্লাগ-ইন AndroidProguardScala v50 এর মাধ্যমে যাচাই করেছি:

https://stackoverflow.com/a/11084146/1287856

সবকিছু ঠিকঠাক কাজ করে। স্কেলাইফাইড মূল ক্রিয়াকলাপ শ্রেণীর সাথে একটি সাধারণ পরীক্ষার অ্যাপ্লিকেশন কেবল 38 কেবি লাগে takes গ্রন্থাগারগুলির প্রকল্পগুলি সমর্থিত। প্রকল্পটি রফতানির সময় প্রোগার্ড সক্রিয় করা হয়।


3
এই দুর্দান্ত লাগছে। কোনও ডিভাইসে মোতায়েন করার সময় এই সমাধানটির সাথে কীভাবে সময় তৈরি করা হয় (তুলনামূলক জাভা অ্যান্ড্রয়েড প্রকল্প স্থাপনের সাথে তুলনা করা)?
দুষ্টকান্দিবাগ

1
কোনও ডিভাইসে মোতায়েনের সময় বিল্ড সময়টি প্রায় 10 সেকেন্ডের হয়। আমি আশা করি এটি কোনও দিন দ্রুত হবে।
মিকাউল মায়ার

6
নতুন কিছু ভাল ক্যাশে প্রয়োগের কারণে এটি সর্বশেষতম অ্যান্ড্রয়েড এসডিকে এবং প্লাগ-ইন নিয়ে এখন প্রায় 1 সেকেন্ড সময় নেয়।
মিকাউল মায়ার

7

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

দয়া করে মনে রাখবেন যে এই প্রশ্নটি স্ট্যাক ওভারফ্লোতে পুরানো উত্তর সহ একটি প্রশ্নের একটি আদর্শ উদাহরণ । এই উত্তর সম্ভবত একসময় পুরানো হয়ে যাবে।

* এই উত্তর থ্রেডে উল্লিখিত অন্যান্য এসবিটি ভিত্তিক প্রকল্পগুলি লেখার সময় গত ছয় মাসে তাদের জন্য কোড লেখা ছিল বলে মনে হয় না। তাদের স্কেলা এবং এসবিটির নতুন সংস্করণগুলির সাথে সামঞ্জস্যতার সমস্যা থাকতে পারে।


6

আপনি যদি মাভেন ব্যবহার করেন তবে অ্যান্ড্রয়েড-স্কালা-পরীক্ষাটি একটি স্টার্টআপ টেম্পলেট হিসাবে ব্যবহার করুন। এটি বাক্সের বাইরে আমার পক্ষে দুর্দান্ত কাজ করে।

স্কালয়েড হ'ল স্ক্রালে লিখিত একটি অ্যান্ড্রয়েড এপিআই র‌্যাপার যা স্কেল-স্টাইলে আপনার অ্যান্ড্রয়েড প্রোগ্রাম লিখতে সহায়তা করে।


4

আপনি এসবিটি ছাড়াই অ্যান্ড্রয়েডের স্কেল ব্যবহার করতে পারেন, এটি অ্যান্ড্রয়েড অ্যাপ্লিকেশনগুলি তৈরি করতে গ্রেডল বাহ্যিকভাবে নির্মিত। https://github.com/yareally/android-scala-intellij-no-sbt-plugin

গ্রেডল অ্যান্ড্রয়েডের জন্য এসবিটি-র চেয়ে আরও বেশি দেশীয় বিল্ডিং টুল।

স্কেল ক্লায়েন্ট এবং সার্ভার সাইড সলিউশন কনসেপ্ট এবং ইন্টেলিজ আইডিইএ ওয়ার্কবেঞ্চের অগ্রিম হিসাবে গ্রেড বিল্ডিং সরঞ্জামের উদাহরণ রয়েছে।

বড় ক্লাস ক্লায়েন্ট এবং সার্ভারের জন্য সাধারণ।

https://github.com/ghik/akkdroid

আইডিইএ এবং অ্যান্ড্রয়েড-প্লাগইন জন্য ভাল টিউটোরিয়াল: http://fxthomas.github.io/android-plugin/


3

অ্যান্ড্রয়েডে স্কালার সবচেয়ে বড় সমস্যা হ'ল সংকলনের সময়।

সম্ভবত ডিগ্রি কোয়াড কোর (8-সিপিইউ) E5450 জিওন সহ আইডিইএ 13 / স্কেলা প্লাগইন সহ প্রগার্ড ক্লাস স্ট্রিপিং সংকলনগুলির কারণে দুই মিনিট বা তার বেশি সময় নিতে পারে।

সংকলনের সময়গুলি খুব হতাশার কারণে আমি খুব সহজ স্ক্রাল অ্যান্ড্রয়েড প্রকল্প শেষ করে জাভাতে ফিরে এসেছি।

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