You can use the following code to share your APK,
public static void shareAPK(Activity activity) {
    if (ContextCompat.checkSelfPermission(activity, Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED) {
        try {
            // First we should copy apk file from source dir to ur external dir
            ApplicationInfo app = activity.getPackageManager().getApplicationInfo(activity.getPackageName(), 0);
            File apkFile = new File(app.sourceDir);
            File backupFile = new File(Environment.getExternalStorageDirectory(), "[ANY NAME FOR APK].apk");
            copy(apkFile, backupFile);
            Intent shareIntent = getShareIntent(backupFile);
            activity.startActivity(Intent.createChooser(shareIntent, "Send [AppName] application APK using"));
        } catch (NameNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
public static Intent getShareIntent(File file) {
    Intent intent = new Intent();
    intent.setAction(Intent.ACTION_SEND);
    intent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(file));
    intent.setType("application/vnd.android.package-archive");
    intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    return intent;
}
public static void copy(File src, File dst) throws IOException {
    FileInputStream inStream = new FileInputStream(src);
    FileOutputStream outStream = new FileOutputStream(dst);
    FileChannel inChannel = inStream.getChannel();
    FileChannel outChannel = outStream.getChannel();
    inChannel.transferTo(0, inChannel.size(), outChannel);
    inStream.close();
    outStream.close();
}