Aix Extensions Maker

Sure, let me summarize the provided information:

Overview:

  • sd-aix-maker allows you to create extensions with Java source code, similar to Appinventor-Source, but without Kotlin support, enable java8 --source 8 , no-desugarding libraries, support Lambda expression
  • It supports platforms such as Android (Termux or userland), Windows, Linux, and potentially macOS.

Requirements:

  • Ensure you have Git, Java JDK 8-11, and Apache Ant installed.
  • Clone the repository: git clone https://github.com/SecretDiscorder/sd-aix-maker

Structure:

  • Source files: components/src/...
  • External Libraries: lib/...
  • To build: ant aix
  • To use Proguard: ant aix -Dproguard=1
  • Custom build: ./build.xml ./build-common.xml ./components/build.xml

Adding Source Code and External Libraries:

  • Source code goes to components/src/com/...
  • External libraries go to lib/{your library folder}/{your library}.jar
  • Modify components/build.xml accordingly.

GitHub Link:

Example Code Structure:

  • Source code in com.example
  • Uses Appinventor components
  • Includes library references in @UsesLibraries
  • Defines permissions in @UsesPermissions

I Can coding but in bold quote “UNDERSTAND”.
Thanks

I build it by my self. Just only my knowledge about this.

If any question or bugs maybe i can update if i Can.

Links github

GitHub - SecretDiscorder/sd-aix-maker: Remakeable Appinventor Extension Aix Creator

I’m from Indonesian

Can i rename default git clone folder
You don’t rename default folder sd-aix-maker

You Can see overflow git at Create ant.yml · SecretDiscorder/sd-aix-maker@9ec2948 · GitHub

How to put source code and write or add External libraries?

You Can write or put source code to components/src/com/.....

If you add External library put to lib/{folder your libraries}/{your libraries}.jar

Then go to components/build.xml

This

<copy toFile="${public.deps.dir}/{your libraries name}.jar"
file="${lib.dir}/{your libraries folder}/{your libraries name}.jar" />

@UsesLibraries(libraries = “runtime-sources.jar, runtime.jar, yourlibraries.jar”) // don’t remove runtime or source.jar
Then you Can add to your code .Java

Example:

package com.example;
import com.google.appinventor.components.runtime.*;
import com.google.appinventor.components.runtime.util.*;
import com.google.appinventor.components.annotations.*;
import com.google.appinventor.components.common.*;
import com.google.appinventor.components.scripts.*;
import com.google.appinventor.components.annotations.androidmanifest.*;
import android.*;
import android.app.*;
@DesignerComponent(
version = 1,
description = “Simple Extension”,
category = ComponentCategory.EXTENSION,
nonVisible = true,
iconName = “https://i.ibb.co/wJr2ymf/BimaAix.jpg”,
androidMinSdk = 26
)
@SimpleObject(external = true)
//Libraries
@UsesLibraries(libraries = “runtime-sources.jar, runtime.jar”) //add libraries and don’t remove default
@UsesPermissions(permissionNames = “android.permission.WRITE_EXTERNAL_STORAGE,android.permission.ACCESS_DOWNLOAD_MANAGER,android.permission.ACCESS_FINE_LOCATION,android.permission.RECORD_AUDIO, android.permission.MODIFY_AUDIO_SETTINGS, android.permission.CAMERA,android.permission.VIBRATE,android.webkit.resource.VIDEO_CAPTURE,android.webkit.resource.AUDIO_CAPTURE,android.launcher.permission.INSTALL_SHORTCUT,android.permission.ACTION_MANAGE_OVERLAY_PERMISSION,android.permission.CLEAR_APP_CACHE,android.permission.SYSTEM_ALERT_WINDOW,android.permission.HIDE_OVERLAY_WINDOWS,android.permission.QUERY_ALL_PACKAGES,android.permission.INTERNET,android.permission.MANAGE_EXTERNAL_STORAGE,android.permission.REQUEST_DELETE_PACKAGES,android.permission.REQUEST_INSTALL_PACKAGES,com.android.launcher.permission.INSTALL_SHORTCUT”)

public class Extension extends AndroidNonvisibleComponent implements Component{
private ComponentContainer container;
private Activity activity;

public Extension(ComponentContainer container) {
    super(container.$form());
    this.activity = container.$context();
    this.container = container;
}

@SimpleFunction
public void ExampleFunction() {
}
@SimpleEvent
public void ExampleEvent() {
}

@SimpleProperty( category = PropertyCategory.BEHAVIOR)
@DesignerProperty(defaultValue = "true", editorType = "boolean")
public void ExampleProperty(boolean property) {
}
public boolean property(){
    return true;
}

}

This should give you a cleaner and more organized narrative of the provided information. If you have specific questions or need further clarification, feel free to ask!

5 Likes

You Can reply this don’t private
So that make easier to me provide informations

:partying_face:

2 Likes

How to use in mobile steps by step please

You Can install Userland Playstore and select Ubuntu kernel.
Or you Can install Termux with openjdk11.
apt update && apt upgrade
apt install openjdk11-jdk //search Googling for openjdk11 Termux instalation
apt install ant
apt install git
then clone or download this repository
after clone with git clone
cd sd-aix-maker

To build
ant aix
Output directory in sd-aix-maker/components/build/extensions/…

So you ask usage for mobile ? Why no PC?

Video above (Top) for example using Termux. Be carefull to editing Java file in termux. Its to hard

How to edit code and where to find that aix file after build?