Android Development Posts
How to create APK and Bundle in android javaAndroid Development

How to create APK and Bundle in android javaAndroid Development
While developing apps in Android Studio, developers can create an APK file and share it with other developers or to QA people for testing purposes.
APK can be created with two types:
- Debug APK
- Release APK
- Debug APK is very fast in building and Release APK is a little bit slow.
How to create a Release APK File:
- Flowing below all steps
- Open android studio
- Click Build on the toolbar
- Click Generate Signed Bundle/APK.
- Select APK
- Click the Next button
- After clicking the next button, you will see the following dialog.
- Click the "Create new..." button, highlighted in the following image by a red circle if you are creating an APK for the first time. Otherwise, you can choose from existing.
- It will open one another dialog box
- Key store path in select save location .jks file
- Fill in all the information
- Set a valid name for the key alias
- Set 100 as validity years
- Fill Certificate Information
- Click OK
- After you click on it, select "release" from the dialog box
- Select "V1 (Jar Signature)" & "V2 (Full APK Signature)" checkboxes
- Click Finish
- It will start the process of building your APK
How to create a debug .apk file
- Click Build and select Build Bundles(s)/APK(s)
- Select "Build APK(s)" from the dialog box
- It will start the process of building your debug APK file creating
Useful Shortcut Keys for Android StudioAndroid Development

Useful Shortcut Keys for Android StudioAndroid Development
Hello, friend, the shortcut way everyone likes. but remember a shortcut is to improve yourself and save time. It's a very good way. so in this blog learning the android studio shortcut key.use all short cut key and save time and performance improve
Search Keys:
- Shift+Shift — Search Everywhere
- Ctrl+F — Find Text within a Single File
- Ctrl+Shift+F-Find Text in All Files
- Ctrl+R — Replace Selected Text in a Single File
- Ctrl+Shift+R — Replace Selected Text in all Files (Be Careful while Using This)
- Ctrl+Shift+A —Search for IDE Commands
Navigation Keys:
- Ctrl+N — Navigate to Class
- Ctrl+Shift+N — Navigate to a File
- Ctrl+B — Jump to Declarations
- Alt+ ↑ — Jump to the Previous Method
- Alt+↓ — Jump to Next Method
- Ctrl+G — Jump to Line
- Ctrl+E — Recent Files
- Ctrl+Shift+Backspace — Jump to Last Edited Location
- Ctrl+B — Find Declarations
- Ctrl+Left Mouse(or)Ctrl+Alt+F7— Show Usage
- Alt + F7 / Ctrl + F7 — Find usages /Find usages in file
- Ctrl+Shift+B — Find Implementations
- F3 — Find Next
- Shift+F3 — Find Previous
BookMark Keys:
- F11 — Toggle bookmark
- Ctrl+F11 — Toggle bookmark with the mnemonic(0–9 or A-Z)
- Ctrl +(0–9) — Go to numbered bookmark
- Shift+F11 — Show all Bookmarks
- Ctrl + Shift + F7 — Highlight usages in file
Selection Keys:
- Ctrl + W — Extend selection (selects a word->line->method->Class )
- Ctrl +Shift+ W — Decrease Selection
- Alt + J — Select next occurrence
- Ctrl + Alt + Shift + J — Select all occurrences
- Alt + Shift + J — Unselect occurrence
- Ctrl+Shift+V — Paste from recent buffers (from a History of Copied Contents)
Editing Keys:
- Ctrl+F6 — Refactor Code
- Ctrl+D — Duplicate a Line/Selected part
- Ctrl+Y — Delete a Line/Selected part
- Ctrl+Q — Quick Documentation
- Ctrl + Space — Code completion
- Ctrl+Shift+Space — Smart code completion (by expected type removes unrelated suggestions)
- Alt+Insert — Generate Code
- Ctrl+J — Insert Live template
- Ctrl + O — Override methods
- Ctrl + I — Implement methods
- Ctrl + Alt + T — Surround with…
- Ctrl + / — Comment / uncomment with line comment
- Ctrl + Shift + / — Comment / uncomment with block comment
- Ctrl+Alt+L — Reformat code
Run:
- Ctrl + F9 — Compile and Run Make a project
- Ctrl + Shift + F9 — Compile selected file, package or module
- Shift + F10 — Run
- Shift + F9 — Debug
- Ctrl + Shift + F10 — Run context configuration from editor
Debugging:
- F8 / F7 — Step over / into
- Shift + F7 / Shift + F8 — Smart step into/Step out
- Alt + F9 — Run to cursor
- Alt + F8 — Evaluate expression
- F9 — Resume program
- Ctrl + F8 — Toggle breakpoint
- Ctrl + Shift + F8 — View breakpoints
How to Implement Splash Screen in AndroidAndroid Development

How to Implement Splash Screen in AndroidAndroid Development
What is a SplashScreen?
A splash screen is a screen that appears when you open an app on your mobile device. So, we can say that it is the first impression for the user. It is commonly used to show an application logo or an image associated with an application.
Implementation
So instead of using a layout file, we'll refer to the splash screen as the background of the activity theme. first, create an XML drawable splash_background.xml inside the res/drawable folder in
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@color/white" />
<item android:drawable="@drawable/ic_icon_vector" android:gravity="center" />
</layer-list>
next step, set splash_groundground.xml as the background for your splash activity in the theme. Add a new splash to your splash activity.
<!-- Splash Screen theme. -->
<style name="SplashTheme" parent="Theme.AppCompat.NoActionBar">
<item name="android:windowBackground">@drawable/splash_background></item>
</style>
Add your theme to AndroidManifest.xml as your splash activity theme.
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.exmple.splash">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/Theme">
<activity
android:name=".SplashActivity"
android:theme="@style/SplashTheme">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest></pre><div>
}
Create a blank activity for SplashActivity.java without XML. This class will only redirect to MainActivity.java.
public class SplashActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
startActivity(new Intent(SplashActivity.this, MainActivity.class));
finish();
}
}
How to Create Custom CardView in AndroidAndroid Development

How to Create Custom CardView in AndroidAndroid Development
Customized CardView
dependencies {
implementation
‘androidx.cardview:cardview:1.0.0’
}
res > drawable > New > Drawable Resource File.
background1.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">

background2.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
background3.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">

Now create a card view in the main XML file. Here I used LinearLayout as the root widget, after using the card view. Below the codes that give you an idea of how to customize the card.
You can change it according to your needs.
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<androidx.cardview.widget.CardView
android:layout_width="match_parent"
android:layout_height="173dp"
android:layout_marginStart="20dp"
android:layout_marginTop="20dp"
android:layout_marginEnd="20dp"
app:cardCornerRadius="8dp">
<LinearLayout
android:id="@+id/linearLayout1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/bg1"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="30dp"
android:layout_marginTop="20dp"
android:layout_marginEnd="30dp"
android:orientation="horizontal">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Assam"
android:textColor="#000000"
android:textSize="22sp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Current Location"
android:textColor="#000000"
android:textSize="14sp" />
</LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginStart="30dp"
android:layout_marginTop="20dp"
android:layout_marginEnd="30dp"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="25"
android:textColor="#000000"
android:textSize="28sp" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="6dp"
android:text="o"
android:textColor="#000000"
android:textSize="13sp" />
</LinearLayout>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="18 %"
android:textColor="#000000"
android:textSize="14sp" />
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_marginStart="6dp"
android:text="11.25 AM"
android:textColor="#000000"
android:textSize="14sp" />
</RelativeLayout>
</LinearLayout>
</LinearLayout>
</androidx.cardview.widget.CardView>
<androidx.cardview.widget.CardView
android:layout_width="match_parent"
android:layout_height="173dp"
android:layout_marginStart="20dp"
android:layout_marginTop="20dp"
android:layout_marginEnd="20dp"
app:cardCornerRadius="8dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/bg2"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="30dp"
android:layout_marginTop="20dp"
android:layout_marginEnd="30dp"
android:orientation="horizontal">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Delhi"
android:textColor="@color/white"
android:textSize="22sp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="2 days ago"
android:textColor="@color/white"
android:textSize="14sp" />
</LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginStart="30dp"
android:layout_marginTop="20dp"
android:layout_marginEnd="30dp"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="39"
android:textColor="@color/white"
android:textSize="28sp" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="6dp"
android:text="o"
android:textColor="@color/white"
android:textSize="13sp" />
</LinearLayout>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="35 %"
android:textColor="@color/white"
android:textSize="14sp" />
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_marginStart="6dp"
android:text="01.05 PM"
android:textColor="#D6D6D6"
android:textSize="14sp" />
</RelativeLayout>
</LinearLayout>
</LinearLayout>
</androidx.cardview.widget.CardView>
<androidx.cardview.widget.CardView
android:layout_width="match_parent"
android:layout_height="173dp"
android:layout_marginStart="20dp"
android:layout_marginTop="20dp"
android:layout_marginEnd="20dp"
app:cardCornerRadius="8dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/bg3"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="30dp"
android:layout_marginTop="20dp"
android:layout_marginEnd="30dp"
android:orientation="horizontal">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Darjeeling"
android:textColor="#000000"
android:textSize="22sp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="2 weeks ago"
android:textColor="#000000"
android:textSize="14sp" />
</LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginStart="30dp"
android:layout_marginTop="20dp"
android:layout_marginEnd="30dp"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="12"
android:textColor="#000000"
android:textSize="28sp" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="6dp"
android:text="o"
android:textColor="#000000"
android:textSize="13sp" />
</LinearLayout>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="9 %"
android:textColor="#000000"
android:textSize="14sp" />
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_marginStart="6dp"
android:text="05.00 AM"
android:textColor="#000000"
android:textSize="14sp" />
</RelativeLayout>
</LinearLayout>
</LinearLayout>
</androidx.cardview.widget.CardView>
</LinearLayout>

How to create different type shape in android javaAndroid Development

How to create different type shape in android javaAndroid Development
Hello, wonderful friends today in this blog on learning in android XML files creating different types of shape creating. A shape is an XML file that defines a geometric shape, including strokes, colors, and gradients
First Creating .xml file:
- Open android studio
- Go to drawable
- Right-click drawable menu
Follow below image steps:
Now friend starts coding:
- Creating a capsule shape flow below code:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" >
<corners
android:bottomLeftRadius="30dp"
android:bottomRightRadius="30dp"
android:radius="60dp"
android:topLeftRadius="30dp"
android:topRightRadius="30dp"/>
Corners:
The below image is showing the shape corner radius
Solid:
Solid means shape inner color “#CFCFCF”
Padding:
There is always developer confusion between padding and margin. Both provide extra space/gap inside or outside the container. In simple words, margin means to push outside, whereas padding means to push inside.
Size:
It's very simple shape width - height
How To Integrate onesignal push notification in AndroidAndroid Development

How To Integrate onesignal push notification in AndroidAndroid Development
Step: 1 Create a new Project in Android Studio
Add OneSignal dependency and plugin to your build.Gradle app-level.
apply plugin: 'com.onesignal.androidsdk.onesignal-gradle-plugin'
dependencies {
implementation 'com.onesignal:OneSignal:3.12.6'
}
buildscript {
repositories {
google()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:4.1.0'
classpath 'gradle.plugin.com.onesignal:onesignal-gradle-plugin:[0.12.4, 0.99.99]'
}
}
Step: 2 Create a new OneSignal Project
- login your OneSignal Account than create an app
- Enter Your Android Application Name & Select platform Google Android(FCM)
- Generate a Firebase Server Key Read the documentation.
- Enter your Firebase Server Key & Firebase Sender ID.
Step: 3 Add Your Created Onesignal App ID
android {
compileSdkVersion 30
buildToolsVersion "30.0.2"
defaultConfig {
applicationId "com.myapplication.app"
minSdkVersion 17
targetSdkVersion 30
versionCode 1
versionName "1.0.0"
multiDexEnabled true
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
manifestPlaceholders = [onesignal_app_id: "Enter Your App ID",]
}
buildTypes {
release {
minifyEnabled true
shrinkResources true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
import android.app.Application;
import android.content.Context;
import androidx.multidex.MultiDex;
import com.onesignal.OneSignal;
public class MyApplication extends Application {
public static Context context;
@Override
public void onCreate() {
super.onCreate();
context = getApplicationContext();
context = this;
OneSignal.startInit(this) .inFocusDisplaying(OneSignal.OSInFocusDisplayOption.Notification)
.unsubscribeWhenNotificationsAreDisabled(true)
.init();
}
public static Context getContext() {
return context;
}
}
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.myapplication.app">
<uses-permission android:name="android.permission.INTERNET"/
<uses-permission
android:name="android.permission.ACCESS_NETWORK_STATE" />
<application
android:name="com.myapplication.app.MyApplication"
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:requestLegacyExternalStorage="true"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity
android:name="com.myapplication.app.activity.SplashActivity"
android:screenOrientation="portrait">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
How to create any API response model class in android javaAndroid Development

How to create any API response model class in android javaAndroid Development
- Developer use API calling retrofit, volley JSON or other tools but API response check-in postman time confusion how to creating this response model class
- So a friend in this topic I will try your confusion remove flow below all steps and 5 min inner creating a wonderful model class
Step: 1 Android studio in install "RoboPOJOGenerator"
- Location in the android studio:
- Open android studio
- Go to File
- Go to Setting
- Click plugin
- check the below image && click and install RoboPOJOGenerator then your android studio restart
Step: 2 How to open RoboPOJOGenerator
- Open android studio
- Go to File
- Select directory below the image in showing related select any one directory
- Right-click - select New - then below showing "RoboPOJOGenerator"
Step: 3 How to add postman response
- Postman response copy
- Paste this response in "RoboPOJOGenerator" in one black color dialog showing in android studio
- Left top side one cursor visible on this area in paste this response
- Select "GSON" option in "RoboPOJOGenerator"
- Last click generate button after a few moments your model class is ready
Facebook Login With Firebase In Android JavaAndroid Development

Facebook Login With Firebase In Android JavaAndroid Development
1.Add this library build.gradle(:app)
- This library user for firebase integration dependencies
{
implementation 'com.google.firebase:firebase-auth:19.4.0'
}
2.Add this permission in AndroidManifest.xml
- This permission use internet connection checking
{
<com.facebook.login.widget.LoginButton
android:id="@+id/login_button"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center"
android:visibility="gone"/>
}
3.Activity in add this permission
- This permission is for user data. Without this permission user data not meet
- loginButtonThis button is Facebook button
- LoginManager.getInstance().logInWithReadPermissions(FacebookLoginActivity.this, Arrays.asList("email", "public_profile"));
- loginButton.setReadPermissions("email", "public_profile");
4.Initialize Authentication:
void initializeAuthentication(){
FirebaseAuth mAuth = FirebaseAuth.getInstance();
GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
.requestIdToken(getString(R.string.default_web_client_id))
.requestEmail()
.build();
mGoogleSignInClient = GoogleSignIn.getClient(this, so);
}
7.Add This Function:
- This function user login result return
void faceBookLogin(LoginResult loginResult){
setFacebookData(loginResult);
Profile profile = Profile.getCurrentProfile();
if (profile != null) {
String avatar = ImageRequest.getProfilePictureUri(profile.getId(), 200, 200)
.toString();
} handleFacebookAccessToken(loginResult.getAccessToken());
}
7.Handle Token :
- This token return firebase login fails or not an event
private void handleFacebookAccessToken(AccessToken token) {
AuthCredential credential = FacebookAuthProvider.getCredential(token.getToken());
mAuth.signInWithCredential(credential)
.addOnCompleteListener(this, new OnCompleteListener() {
@Override
public void onComplete(@NonNull Task task) {
if (task.isSuccessful()) {
FirebaseUser user = mAuth.getCurrentUser();
user.getIdToken(true).addOnCompleteListener(new OnCompleteListener() {
@Override
public void onComplete(@NonNull Task task) {
String token = task.getResult().getToken();
}
});
} else {
String errorCode = String.valueOf(task.getException());
Toast.makeText(FacebookLoginActivity.this, "Login failed.", Toast.LENGTH_SHORT).show();
}
}
});
}
Notes:
- “Default_web_client_id” this keyword, not changes because creating google-services.json file time automatically this keyword in add values so this key work put at its
