Red de conocimiento informático - Problemas con los teléfonos móviles - Complemento de compresión de imágenes uniapp: cómo descifrar aplicaciones escritas por uniapp

Complemento de compresión de imágenes uniapp: cómo descifrar aplicaciones escritas por uniapp

uniapp resuelve el problema de no mostrar imágenes compartidas en ios Weibo

Problema: la visualización de la imagen debe tener menos de 20 kb, lo que se debe a que la imagen es demasiado grande, así que simplemente comprime la imagen

Sitio web de referencia: Cómo descifrar la aplicación uniapp

Recientemente, el proyecto de aplicación móvil desarrollado por uniapp encontró un problema difícil. Quiero implementar TCPScoket. Sabemos que el desarrollo de Uniapp básicamente utiliza algunos marcos front-end (como vue, mpvue, etc.) y algunas API propias de uni. Hay tres formas comunes de usar código nativo de Android en uniapp:

Una: use () para llamar a clases de Android para escribir código nativo, pero los resultados de la prueba no son ideales y la velocidad es muy lenta.

Dos: desarrollar complementos nativos de Android, que se ejecutan rápidamente, pero requieren cierta experiencia en desarrollo de Android y son más difíciles.

Tres: compre complementos nativos desarrollados por otros desarrolladores, pero los precios generalmente no son bajos.

En resumen, ¡debemos aprender a desarrollar complementos nativos nosotros mismos!

2. Preparación

1. Herramienta de desarrollo de AndroidStudio. Dirección de descarga:

Tutorial de instalación:

2. Descarga del SDK sin conexión (descarga la última versión). Dirección de descarga:

3. Asegúrese de que HbuilderX también sea la última versión.

4.

Método de generación:

3. Crear caso Uniapp (TCP-Plugin)

1. Cree una aplicación en el centro de desarrolladores:

2. para ingresar a la aplicación, seleccione Administración de claves de empaquetado fuera de línea e ingrese la siguiente información:

Obtener certificado de firma:

3. Haga clic en Guardar para generar la clave de aplicación para su uso posterior:

<. p>Inicie HbuilderX, inicie sesión en su cuenta en la esquina inferior izquierda, cree un nuevo proyecto de plantilla predeterminado con el mismo nombre que el proyecto anterior y verifique si el AppID corresponde al APPID de la nube:

El ¡Ya se ha creado el uniappdemo anterior!

4. Desarrollo de complementos nativos de Android

1. Importe el SDK sin conexión descargado, UniPlugin-Hello-AS, al proyecto del marco de desarrollo de complementos nativos.

2. Cambie al modo de proyecto, la estructura del proyecto es la siguiente:

3. Complete la clave de aplicación que acabamos de solicitar en app/src/main/. la clave de aplicación como Android:

Cuatro. Coloque nuestro certificado de firma en el directorio de la aplicación y asigne un nombre al certificado de firma del blogger.

Cinco. Configure el certificado de firma, la opción signingConfigs en app/:

Seis, haga clic derecho en UniPlugin-Hello-AS, crear módulo

Siete, complete la información del módulo de complemento:

Configurar TCP. -Socket/, copia el caso oficial uniplugin_module/

applyplugin:''

android{

compileSdkVersion29

defaultConfig{

minSdkVersion16

targetSdkVersion28

versionCode1

versionName" 1.0"

testInstrumentationRunner''

}

buildTypes{

lanzamiento{

minifyEnabledfalse

prouardFilesgetDefaultProguardFile(''),'

}

}

}

repositorios{

planoDir{

dirs'libs'

}

}

dependencias{

compileOnlyfileTree(dir:libs',include:['*.jar'])

compileOnlyfileTree (dir:'./appcompat:1.0.0'

p>

implementación':fastjson:1.1.'

implementación':fresco:1.13.0'

/*implementation':appcompat-v7. 28.0.0'

testImplementation'junit:junit:4.12'

androidTestImplementation':runner:1.0.2'

androidTestImplementation'. :espresso-core:3.0.2'* /

}

9. Eliminar casos oficiales innecesarios para que el proyecto sea más conciso (opcional):

10. En el módulo TCP-Socket, cree la clase TcpModule en com/example/tcp/socket

x.

importo;

importo;

importo;

importo;

importo;

publicclassTcpModuleextendsUniModule{

intport=6666;

Socketsocket=null;

OutputStreamWriteroutputStream=null;

InputStreamReaderinputStream=null;

@ UniJSMethod

publicvoidsend(finalJSONObjectjson,finalUniJSCallbackcallback){

newThread(newRunnable(){

@Override

publicvoidrun(){

Stringip=("ip");

StringuserId=("code");

JSONObjectres=newJSONObject();

Establecer una conexión con el servidor

try{

socket=newSocket(ip,port);

(1500);

// Obtener información después de establecer la conexión y flujo de salida

outputStream=newOutputStreamWriter(());

inputStream=newInputStreamReader(());

}catch(Exceptione){

intenta{

();

}catch(IOExceptionioException){

( );

}

e.printStackTrace();

("code",400);

("data", "Excepción del sistema, ¡reinicie la APLICACIÓN!"); p>

(res);

}

BufferedReadersocketReader=newBufferedReader((inputStream));

BufferedWriterbufferedWriter=newBufferedWriter(outputStream);

PrintWritersocketWriter=newPrintWriter(bufferedWriter,true);

(userId);

prueba{

Strings=();

("code",200);

("data",s);

/Cierre la conexión aquí; de lo contrario, el programa no podrá ejecutarse después la devolución de llamada, ni podrá cerrar la conexión finalmente

();

(res);

}catch(IOExceptione){

("code", 400);

("data", "Anormalidad del sistema, reinicie la APLICACIÓN. ");

(res);

}

}

}

}).start( );

}

}

Nota: Android 4.0 no permite que el hilo principal realice conexiones de red; de lo contrario, se producirán conexiones de red. Las conexiones de red inician un hilo separado.

12. Para registrar el complemento, escríbalo en el archivo app/src/main/assets/dcloud_, como se muestra a continuación:

{

"nativePlugins":[

{

"plugins":[

{

"tipo": "módulo",

"nombre":"TCP-Socket",

"clase":""

}

]

}

]

}

5. HbuilderX genera un complemento TCP empaquetado localmente

1. el complemento nativo es el siguiente:

constTCP=("TCP-Socket");

El código está escrito de la siguiente manera: