রেফারেন্স টিভি অ্যাপ

একটি টিভি অ্যাপ যা লাইভ টিভি বিষয়বস্তু চালায় তা কিছু শ্রেণীর Android TV ডিভাইসের জন্য প্রয়োজন, যেমন প্যানেল টিভি এবং অপারেটর STBs। একটি রেফারেন্স অ্যাপের সোর্স কোড অ্যান্ড্রয়েড ওপেন সোর্স প্রজেক্টে পাওয়া যায়।

এই পৃষ্ঠাটি আপনার Android টেলিভিশন ডিভাইসের জন্য লাইভ টিভির উপর ভিত্তি করে কীভাবে একটি সিস্টেম টিভি অ্যাপ তৈরি এবং কাস্টমাইজ করতে হয় তার সংক্ষিপ্ত বিবরণ দেয়।

নির্ভরতা

লাইভ টিভি অ্যাপটি টিভি ইনপুট ফ্রেমওয়ার্ক (TIF) এর একটি উপাদান এবং অন্যান্য TIF উপাদান থেকে স্বাধীনভাবে ব্যবহার করা যাবে না। অ্যাপের বিভিন্ন শাখার অ্যান্ড্রয়েড এপিআই স্তরের উপর বিভিন্ন নির্ভরতা রয়েছে:

শাখা লক্ষ্য API স্তর ন্যূনতম API স্তর
master 24 (Android 7.0) 23
android-live-tv 23 (Android 6.0) 21
android-live-tv-l-mr1 22 (Android 5.1) 21

উৎস পান

শুরু করতে, গিট থেকে একটি লাইভ টিভি সংস্করণ নির্বাচন করুন৷ নিম্নলিখিত নির্দেশাবলী লাইভ টিভির বর্তমান সংস্করণের জন্য। পূর্ববর্তী সংস্করণ ব্যবহার করতে, পূর্ববর্তী টেবিলে তালিকাভুক্ত গিট শাখাগুলির একটিতে স্যুইচ করুন।

mkdir live-tv && cd live-tv
repo init -u https://android.googlesource.com/platform/manifest -b master
repo sync -j8 -c

নির্মাণ করুন

লাইভ টিভি কোড তৈরি করতে, চালান:

. build/envsetup.sh
tapas LiveTv x86
make LiveTv

ধাক্কা

আপনার পরীক্ষা ডিভাইসে লাইভ টিভি পুশ করতে নিম্নলিখিত কোড ব্যবহার করুন:

adb install -r -d $OUT/system/priv-app/LiveTv/LiveTv.apk

আপনি যদি লাইভ টিভি অ্যাপের সিস্টেমের অনুমতি পেতে চান, তাহলে প্রথমবার ইনস্টল করার সময় এটিকে /system/priv-app এ পুশ করতে নিম্নলিখিত কোডটি ব্যবহার করুন:

adb push $OUT/system/priv-app/LiveTv/LiveTv.apk  /system/priv-app/LiveTv/

পরীক্ষা

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

ইউনিট পরীক্ষা

adb shell logcat -c
m LiveTv TVTestInput TVUnitTests -j20 &&\
adb install -r -d $OUT/system/priv-app/LiveTv/LiveTv.apk &&\
adb install -r -d $OUT/system/app/TVTestInput/TVTestInput.apk && \
adb install -r -d $OUT/data/app/TVUnitTests/TVUnitTests.apk && \
adb shell pm clear com.android.providers.tv && \
adb shell pm clear com.android.tv && \
adb shell am instrument \
  -e testSetupMode unit \
  -w com.android.tv.testinput/.instrument.TestSetupInstrumentation &&\
adb shell input keyevent KEYCODE_HOME &&\
adb shell am instrument \
  -w 'com.android.tv.tests/android.support.test.runner.AndroidJUnitRunner'

কার্যকরী পরীক্ষা

adb shell logcat -c
m LiveTv TVTestInput TVFuncTests -j20 &&\
adb install -r -d $OUT/system/priv-app/LiveTv/LiveTv.apk &&\
adb install -r -d $OUT/system/app/TVTestInput/TVTestInput.apk && \
adb install -r -d $OUT/data/app/TVFuncTests/TVFuncTests.apk && \
adb shell pm clear com.android.providers.tv && \
adb shell pm clear com.google.android.tv && \
adb shell am instrument \
  -e testSetupMode func \
  -w com.android.tv.testinput/.instrument.TestSetupInstrumentation &&\
adb shell input keyevent KEYCODE_HOME &&\
adb shell am instrument \
  -w 'com.android.tv.tests.ui/android.support.test.runner.AndroidJUnitRunner'

জ্যাঙ্ক পরীক্ষা

জ্যাঙ্ক পরীক্ষাগুলি ড্রপ করা ফ্রেম এবং রেন্ডারিংয়ে বিলম্বের জন্য সন্ধান করে৷

adb shell logcat -c
m LiveTv TVTestInput TVJankTests -j20 &&\
adb install -r -d $OUT/system/priv-app/LiveTv/LiveTv.apk &&\
adb install -r -d $OUT/system/app/TVTestInput/TVTestInput.apk &&\
adb install -r -d $OUT/data/app/TVJankTests/TVJankTests.apk &&\
adb shell pm clear com.android.providers.tv &&\
adb shell pm clear com.google.android.tv &&\
echo "Creating a lot of channels and EPG data, this may take a while" &&\
adb shell am instrument \
  -e testSetupMode jank \
  -w com.android.tv.testinput/.instrument.TestSetupInstrumentation &&\
adb shell input keyevent KEYCODE_HOME &&\
adb shell am instrument \
  -w 'com.android.tv.tests.jank/android.support.test.runner.AndroidJUnitRunner'