روش های کاهش حجم خروجی برنامه
✔️حذف زبان های غیر قابل استفاده در برنامه از کتابخانه های ایمپورت شده
به طور مثال در اینجا زبان های فارسی و انگلیسی را استفاده می کنیم و مابقی زبان ها بعد ازخروجی گرفتن حذف خواهند شد.
resConfigs 'en', 'fa'
نحوه جایگذاری در فایل گردیل
android {
compileSdkVersion 28
buildToolsVersion "28.0.3
defaultConfig {
applicationId "ir.example.app"
minSdkVersion 15
targetSdkVersion 28
versionCode 1
versionName "1.0.0"
resConfigs 'en', 'fa'
}
✔️تبدیل تصاویر به فرمت WebP توسط خود اندروید استودیو
برای این کار کافیست در نرم افزار اندروید استودیو روی تصاویر موجود در پوشه ها کلیک راست کرده و convert to webp را انتخاب نمایید
✔️کاهش حجم تصاویر بدون تغییر فرمت
در صورتی که نمی خواهید با تغییر فرمت،حجم تصاویر را کاهش دهید می توانید از وب سایت tinypng.com استفاده کنید
البته با فیلترشکن برای دور زدن تحریم!
همچنین این وب سایت محدودیت کاهش حجم 20 تصویر همزمان با حداکثر حجم 5 مکابایت را دارد
✔️استفاده از پروگارد و کوچک کننده
راه دیگر برای کم کردن حجم برنامه و حذف کلاس ها و موارد استفاده نشده و همچنین مبهم سازی کدها، ، استفاده از پروگارد است
که برای این کار به این صورت عمل کنید.
دقت کنید که برخی کتابخانه ها تنطیمات پروگارد دارند که با مراجعه به مستندات آن،باید آن را به برنامه اضافه کنید تا مشکلی در گرفتن خروجی یا عملکرد برنامه بوجود نیاید
buildTypes {
release {
minifyEnabled true
shrinkResources true
useProguard true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
✔️قرار دادن تصاویر،ویدئو ها یا فایل های صوتی روی سرور
برای کاهش حجم برنامه هایی که فایل های حجیم چند رسانه ای دارند می توانید این فایلها را روی سرور اینترنتی قرارداده تا توسط کاربر دانلود شود
اگر شما هم روش دیگه ای دارید برای ما کامنت کنید
@zback
✔️حذف زبان های غیر قابل استفاده در برنامه از کتابخانه های ایمپورت شده
به طور مثال در اینجا زبان های فارسی و انگلیسی را استفاده می کنیم و مابقی زبان ها بعد ازخروجی گرفتن حذف خواهند شد.
resConfigs 'en', 'fa'
نحوه جایگذاری در فایل گردیل
android {
compileSdkVersion 28
buildToolsVersion "28.0.3
defaultConfig {
applicationId "ir.example.app"
minSdkVersion 15
targetSdkVersion 28
versionCode 1
versionName "1.0.0"
resConfigs 'en', 'fa'
}
✔️تبدیل تصاویر به فرمت WebP توسط خود اندروید استودیو
برای این کار کافیست در نرم افزار اندروید استودیو روی تصاویر موجود در پوشه ها کلیک راست کرده و convert to webp را انتخاب نمایید
✔️کاهش حجم تصاویر بدون تغییر فرمت
در صورتی که نمی خواهید با تغییر فرمت،حجم تصاویر را کاهش دهید می توانید از وب سایت tinypng.com استفاده کنید
البته با فیلترشکن برای دور زدن تحریم!
همچنین این وب سایت محدودیت کاهش حجم 20 تصویر همزمان با حداکثر حجم 5 مکابایت را دارد
✔️استفاده از پروگارد و کوچک کننده
راه دیگر برای کم کردن حجم برنامه و حذف کلاس ها و موارد استفاده نشده و همچنین مبهم سازی کدها، ، استفاده از پروگارد است
که برای این کار به این صورت عمل کنید.
دقت کنید که برخی کتابخانه ها تنطیمات پروگارد دارند که با مراجعه به مستندات آن،باید آن را به برنامه اضافه کنید تا مشکلی در گرفتن خروجی یا عملکرد برنامه بوجود نیاید
buildTypes {
release {
minifyEnabled true
shrinkResources true
useProguard true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
✔️قرار دادن تصاویر،ویدئو ها یا فایل های صوتی روی سرور
برای کاهش حجم برنامه هایی که فایل های حجیم چند رسانه ای دارند می توانید این فایلها را روی سرور اینترنتی قرارداده تا توسط کاربر دانلود شود
اگر شما هم روش دیگه ای دارید برای ما کامنت کنید
@zback
تغییر فونت تب لایوت ✏️✏️✏️✏️
برای تغییر فونت تب لایوت به این صورت عمل می کنیم
ابتدا یک لایه xml با نام tv_layout ایجاد می کنیم
<?xml version="1.0" encoding="utf-8"?>
<TextView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@android:id/text1"
android:layout_width="match_parent"
android:textSize="15sp"
android:textColor="#ffffff"
android:gravity="center"
android:layout_height="match_parent"
/>
سپس کد زیر را به لایوت تعریف شده اضافه می کنیم
Typeface typeface = Typeface.createFromAsset(getAssets(),"fonts/IRANSans.ttf");
for (int i = 0; i < tabLayout.getTabCount(); i++) {
TextView tv=(TextView) LayoutInflater.from(this).inflate(R.layout.tv_layout,null);
tv.setTypeface(typeface);
tabLayout.getTabAt(i).setCustomView(tv);
}
یک فونت با نام و پسوند IRANSans.ttf در پوشه fonts قرار دارد که این پوشه را در فولدر assets قرار می دهیم
@zback
برای تغییر فونت تب لایوت به این صورت عمل می کنیم
ابتدا یک لایه xml با نام tv_layout ایجاد می کنیم
<?xml version="1.0" encoding="utf-8"?>
<TextView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@android:id/text1"
android:layout_width="match_parent"
android:textSize="15sp"
android:textColor="#ffffff"
android:gravity="center"
android:layout_height="match_parent"
/>
سپس کد زیر را به لایوت تعریف شده اضافه می کنیم
Typeface typeface = Typeface.createFromAsset(getAssets(),"fonts/IRANSans.ttf");
for (int i = 0; i < tabLayout.getTabCount(); i++) {
TextView tv=(TextView) LayoutInflater.from(this).inflate(R.layout.tv_layout,null);
tv.setTypeface(typeface);
tabLayout.getTabAt(i).setCustomView(tv);
}
یک فونت با نام و پسوند IRANSans.ttf در پوشه fonts قرار دارد که این پوشه را در فولدر assets قرار می دهیم
@zback
❌❌ حل مشکل برقراری ارتباط با سرور در تارگت 28 به بالا... ❌❌
https://cafetoseeh.ir/28networksecurity/
@zback
https://cafetoseeh.ir/28networksecurity/
@zback
کافه توسعه
منع ارتباط با سرورهای HTTP از API 28 در برنامه نویسی اندروید - کافه توسعه
باتوجه به مواردی که گوگل داره برای امنیت اندروید روز به روز انجام میده؛ اگه Target SDK رو در پروژه خودتون روی 28 به بالا بذارید در اندروید 9 لینک هایی که حاوی پروتکل HTTPS نیستن رو اجازه ارتباط و یا دانلود محتوا نمیده، اماً این مورد اجباری درش نیست و با یک…