How can I scroll down through Appium in Native Android App

If I use Remote Webdriver , I cannot use the Touch Action method to use the built-in methods like ScrollTo, MoveTO.

I tried using the code given below also :
@Test
public void alert() throws MalformedURLException, InterruptedException {
DesiredCapabilities capabilities = new DesiredCapabilities();

	capabilities.setCapability("browserName", "");
	capabilities.setCapability("platformName", "Android");
	capabilities.setCapability("deviceName", "emulator-5554");
	capabilities.setCapability("platformVersion", "5.1");
	capabilities.setCapability("appPackage", "com.example.android.apis");
	capabilities.setCapability("appActivity","com.example.android.apis.ApiDemos");

	capabilities.setCapability("newCommandTimeout", "1000");

	driver = new RemoteWebDriver(new URL("http://127.0.0.1:4723/wd/hub"),capabilities);
	driver.manage().timeouts().implicitlyWait(15, TimeUnit.SECONDS);
	WebElement e = driver.findElement(By.xpath("//android.widget.TextView[@index='10']"));
	
	((JavascriptExecutor) driver).executeScript("arguments[10].scrollIntoView(true); window.scrollBy(0,250);", e); 
	e.click();

Please suggest as idea how to achieve this.

Try this :

public static void customScroll(AppiumDriver driver, int times, Direction direction) {
int i = 0;
Dimension size = driver.manage().window().getSize();
int startx = 0, starty = 0, endx = 0, endy = 0;
double min = 0.30;
double max = 0.70;

	switch (direction) {
		case DOWN:
			startx = size.getWidth() / 2;
			endx = startx;
			starty = (int) (size.getHeight() * max);
			endy = (int) (size.getHeight() * min);
			break;
		case UP:
			startx = size.getWidth() / 2;
			endx = startx;
			starty = (int) (size.getHeight() * min);
			endy = (int) (size.getHeight() * max);
			break;
		case LEFT:
			startx = (int) (size.getWidth() * max);
			endx = (int) (size.getWidth() * min);
			starty = size.getHeight() / 2;
			endy = starty;
			break;
		case RIGHT:
			startx = (int) (size.getWidth() * min);
			endx = (int) (size.getWidth() * max);
			starty = size.getHeight() / 2;
			endy = starty;
			break;
	}
	while (i < times) {
		driver.swipe(startx, starty, endx, endy, 7000);
		i++;
		try {
			Thread.sleep(2000);
		} catch (InterruptedException e) {
			e.printStackTrace();
		}
	}

}

For Android use below code

driver.findElement(MobileBy
.AndroidUIAutomator(“new UiScrollable(new UiSelector()).scrollIntoView(”
+ “new UiSelector().text(”"+descr+""));"));