Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione vivo X300 Pro: è ancora lui il re della fotografia mobile, peccato per la batteria
Recensione vivo X300 Pro: è ancora lui il re della fotografia mobile, peccato per la batteria
vivo X300 Pro rappresenta un'evoluzione misurata della serie fotografica del produttore cinese, con un sistema di fotocamere migliorato, chipset Dimensity 9500 di ultima generazione e l'arrivo dell'interfaccia OriginOS 6 anche sui modelli internazionali. La scelta di limitare la batteria a 5.440mAh nel mercato europeo, rispetto ai 6.510mAh disponibili altrove, fa storcere un po' il naso
Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'' per spingere gli handheld gaming PC al massimo
Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'' per spingere gli handheld gaming PC al massimo
Lenovo Legion Go 2 è la nuova handheld PC gaming con processore AMD Ryzen Z2 Extreme (8 core Zen 5/5c, GPU RDNA 3.5 16 CU) e schermo OLED 8,8" 1920x1200 144Hz. È dotata anche di controller rimovibili TrueStrike con joystick Hall effect e una batteria da 74Wh. Rispetto al dispositivo che l'ha preceduta, migliora ergonomia e prestazioni a basse risoluzioni, ma pesa 920g e costa 1.299€ nella configurazione con 32GB RAM/1TB SSD e Z2 Extreme
AWS re:Invent 2025: inizia l'era dell'AI-as-a-Service con al centro gli agenti
AWS re:Invent 2025: inizia l'era dell'AI-as-a-Service con al centro gli agenti
A re:Invent 2025, AWS mostra un’evoluzione profonda della propria strategia: l’IA diventa una piattaforma di servizi sempre più pronta all’uso, con agenti e modelli preconfigurati che accelerano lo sviluppo, mentre il cloud resta la base imprescindibile per governare dati, complessità e lock-in in uno scenario sempre più orientato all’hybrid cloud
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 12-04-2011, 21:51   #1
Emaborsa
Senior Member
 
L'Avatar di Emaborsa
 
Iscritto dal: Sep 2004
Città: Bolzano
Messaggi: 2163
[Java/C++] Interfaccia JNI con NDK

Rieccomi.
Ho scritto il mio codice C++. Anche laparte in Java con i metodi nativi sonopronti, ma ora non so come combinare il tutto. Un libro mi parla di un Registro che crea la VM, ma ne parla talmente poco che non si capisce molto.
Chi mi sa dare una mano su come creare oggetti in Java usando però le classi C++? Ho guardato in giro, la maggior parte degli esempi parlano di semplici metodi statici nativi, che secondo me sono facili da realizzare, ma con gli oggetti non si trova molto (quasi niente).
__________________
Vendo...nulla.
Cerco...la felicità
.
Emaborsa è offline   Rispondi citando il messaggio o parte di esso
Old 13-04-2011, 18:14   #2
PGI-Bis
Senior Member
 
L'Avatar di PGI-Bis
 
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
Non cambia molto con gli oggetti. Puoi tranquillamente guardare qui:

http://download.oracle.com/javase/1....ec/jniTOC.html

in particolare:

http://download.oracle.com/javase/1....ns.html#wp4517

Nota che non puoi definire classi java usando classi C++, puoi solo istanziare classi Java già esistenti o definire le controparti native di classi java già esistenti.
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me!
PGI-Bis è offline   Rispondi citando il messaggio o parte di esso
Old 17-04-2011, 16:18   #3
Emaborsa
Senior Member
 
L'Avatar di Emaborsa
 
Iscritto dal: Sep 2004
Città: Bolzano
Messaggi: 2163
Ora solo alle prese con un database, appena ho finito farò delle prove. il JNI l'ho capito, ho trovato un che ne parla.
Ti faccio sapere.
__________________
Vendo...nulla.
Cerco...la felicità
.
Emaborsa è offline   Rispondi citando il messaggio o parte di esso
Old 21-04-2011, 17:34   #4
Emaborsa
Senior Member
 
L'Avatar di Emaborsa
 
Iscritto dal: Sep 2004
Città: Bolzano
Messaggi: 2163
OK, bene o male ho capito come fare.
Ho un solo dubbio. Se i C++ ho una classe che come variabile ha un FILE*, questo come viene visto in Java se faccio una chiamata?
__________________
Vendo...nulla.
Cerco...la felicità
.
Emaborsa è offline   Rispondi citando il messaggio o parte di esso
Old 21-04-2011, 18:55   #5
PGI-Bis
Senior Member
 
L'Avatar di PGI-Bis
 
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
Credo che si usi jlong per i puntatori. Cioè se lato C++ hai la funzione che piglia un puntatore a x, la controparte java rappresenta il puntatore come un valore numerico intero (dico long per i puntatori a 64 bit).

Cioè se, in ipotesi, la funzione C++ è:

void fun(Tipo* puntatore) { ... }

In java la rappresenterei con:

void fun(long valoreDelPuntatore) { ... }

Chiaramente "valoreDelPuntatore" non può che venire dalla controparte C++.

Darei comunque un'occhiata a JNA per vedere se non esistano per caso altre tecniche ignote al pubblico.
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me!
PGI-Bis è offline   Rispondi citando il messaggio o parte di esso
Old 21-04-2011, 21:43   #6
Emaborsa
Senior Member
 
L'Avatar di Emaborsa
 
Iscritto dal: Sep 2004
Città: Bolzano
Messaggi: 2163
Quote:
Originariamente inviato da PGI-Bis Guarda i messaggi
Credo che si usi jlong per i puntatori. Cioè se lato C++ hai la funzione che piglia un puntatore a x, la controparte java rappresenta il puntatore come un valore numerico intero (dico long per i puntatori a 64 bit).

Cioè se, in ipotesi, la funzione C++ è:

void fun(Tipo* puntatore) { ... }

In java la rappresenterei con:

void fun(long valoreDelPuntatore) { ... }

Chiaramente "valoreDelPuntatore" non può che venire dalla controparte C++.

Darei comunque un'occhiata a JNA per vedere se non esistano per caso altre tecniche ignote al pubblico.
Io sono in lunix, JNA se non erro è solo per Windows.
Comunque se il in C++ ho la funzione FILE* getPicture(){return picture}; mi dici che in java poi sarà un long...e come faccio a ricreare il "file"?
__________________
Vendo...nulla.
Cerco...la felicità
.
Emaborsa è offline   Rispondi citando il messaggio o parte di esso
Old 21-04-2011, 22:35   #7
PGI-Bis
Senior Member
 
L'Avatar di PGI-Bis
 
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
jna è per windows/linux/osx/solaris.

Il valore del puntatore ti serve come se fosse la chiave di accesso al valore contenuto in una mappa che esiste solo nella controparte nativa.

Per lavorare col tipo del puntatore passerai attraverso altri metodi nativi. Potresti ad esempio avere:

Codice:
jlong getPicture(nome) {
    FILE* pippo = open qualcosa
    return (jlong) &pippo;//forse, insomma il valore della variabile pippo
}

void transferBytes(jlong pictureFileAddress, jobject byteBuffer) {
    FILE* x = (FILE*)pictureFileAddress;//il cast me lo sono inventato ma ci siamo capiti
    leggi i byte da x che adesso è un FILE e passali nel buffer
}
Non ricrei la struttura dati lato Java, ti limiti a controllarla usando i metodi nativi e l'indirizzo dell'instanza in memoria, presupponendo che il contenuto della memoria di cui conosci l'indirizzo sia conforme al tipo che stai usando (è chiaro che se gli passi un long a caso non funziona).
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me!
PGI-Bis è offline   Rispondi citando il messaggio o parte di esso
Old 21-04-2011, 22:59   #8
Emaborsa
Senior Member
 
L'Avatar di Emaborsa
 
Iscritto dal: Sep 2004
Città: Bolzano
Messaggi: 2163
OK. bene o male ho capito, ma dovrò andare a leggermi un pò di cose.
__________________
Vendo...nulla.
Cerco...la felicità
.
Emaborsa è offline   Rispondi citando il messaggio o parte di esso
Old 15-05-2011, 17:12   #9
Emaborsa
Senior Member
 
L'Avatar di Emaborsa
 
Iscritto dal: Sep 2004
Città: Bolzano
Messaggi: 2163
dove metto il database?

Eccomi.
Ho scritto tutto, codice C++, JNI e schermate android. La libreria nativa viene caricata e non va in crash, perciò deduco che la JNI sia OK. Ho un piccolo problema però, che però mi blocca tutto: Non so dove mettere il mio database sqlite. Ho un progetto Eclipse, con le varie cartelle, ma non trovo la posizione. Le chiamate native accedono a dei metodi che richiamano delle query al database..... Ho provato a metterlo accanto ai file .o, accanto alla libreria, accanto alle classi Java...ma non funziona. Qualcuno sa aiutarmi?
__________________
Vendo...nulla.
Cerco...la felicità
.
Emaborsa è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Recensione vivo X300 Pro: è ancora lui il re della fotografia mobile, peccato per la batteria Recensione vivo X300 Pro: è ancora lui il...
Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'' per spingere gli handheld gaming PC al massimo Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'...
AWS re:Invent 2025: inizia l'era dell'AI-as-a-Service con al centro gli agenti AWS re:Invent 2025: inizia l'era dell'AI-as-a-Se...
Cos'è la bolla dell'IA e perché se ne parla Cos'è la bolla dell'IA e perché se...
BOOX Palma 2 Pro in prova: l'e-reader diventa a colori, e davvero tascabile BOOX Palma 2 Pro in prova: l'e-reader diventa a ...
Il nuovo OnePlus Nord 6 è vicino al debu...
Tesla svela i risultati del Q4: conferma...
Nuova rimodulazione da Fastweb: fino a 3...
La NVIDIA RTX 5090 potrebbe presto costa...
ASUS non produrrà più smar...
CoopVoce sta per lanciare il 5G: ecco qu...
Factorial, azienda di batterie allo stat...
Le specifiche fuori di testa della Yangw...
I numeri incredibili di Xiaomi: nel 2025...
In Cina è pronto il parco fotovol...
Neuralink accelera: produzione di massa ...
Starlink abbassa l'orbita di migliaia di...
Dal MIT una nuova batteria per auto elet...
Adam Mosseri parla di IA su Instagram: l...
Suonerie personalizzate e Tone Store: il...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 01:56.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v