Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Qualcomm Snapdragon X2 Elite: l'architettura del SoC per i notebook del 2026
Qualcomm Snapdragon X2 Elite: l'architettura del SoC per i notebook del 2026
In occasione del proprio Architecture Deep Dive 2025 Qualcomm ha mostrato in dettaglio l'architettura della propria prossima generazione di SoC destinati ai notebook Windows for ARM di prossima generazione. Snapdragon X2 Elite si candida, con sistemi in commercio nella prima metà del 2026, a portare nuove soluzioni nel mondo dei notebook sottili con grande autonomia
Recensione DJI Mini 5 Pro: il drone C0 ultra-leggero con sensore da 1 pollice
Recensione DJI Mini 5 Pro: il drone C0 ultra-leggero con sensore da 1 pollice
DJI Mini 5 Pro porta nella serie Mini il primo sensore CMOS da 1 pollice, unendo qualità d'immagine professionale alla portabilità estrema tipica di tutti i prodotti della famiglia. È un drone C0, quindi in un peso estremamente contenuto e che non richiede patentino, propone un gimbal rotabile a 225 gradi, rilevamento ostacoli anche notturno e autonomia fino a 36 minuti. Caratteristiche che rendono il nuovo drone un riferimento per creator e appassionati
ASUS Expertbook PM3: il notebook robusto per le aziende
ASUS Expertbook PM3: il notebook robusto per le aziende
Pensato per le necessità del pubblico d'azienda, ASUS Expertbook PM3 abbina uno chassis particolrmente robusto ad un pannello da 16 pollici di diagonale che avantaggia la produttività personale. Sotto la scocca troviamo un processore AMD Ryzen AI 7 350, che grazie alla certificazione Copilot+ PC permette di sfruttare al meglio l'accelerazione degli ambiti di intelligenza artificiale
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


Qualcomm Snapdragon X2 Elite: l'architettura del SoC per i notebook del 2026 Qualcomm Snapdragon X2 Elite: l'architettura del...
Recensione DJI Mini 5 Pro: il drone C0 ultra-leggero con sensore da 1 pollice Recensione DJI Mini 5 Pro: il drone C0 ultra-leg...
ASUS Expertbook PM3: il notebook robusto per le aziende ASUS Expertbook PM3: il notebook robusto per le ...
Test ride con Gowow Ori: elettrico e off-road vanno incredibilmente d'accordo Test ride con Gowow Ori: elettrico e off-road va...
Recensione OnePlus 15: potenza da vendere e batteria enorme dentro un nuovo design   Recensione OnePlus 15: potenza da vendere e batt...
Anche l'ISRO ha rilasciato alcune inform...
La NASA mostra le nuove immagini della c...
Superati 13.300 MT/s per DDR5: ad ASUS e...
L’evoluzione dell’IA nelle imprese: la v...
Le storie in evidenza di Instagram torna...
Addio GeForce RTX 5060 e Radeon RX 9060?...
Arriva Hisense Déco TV S5Q, estet...
Aggiornata TOP500, la classifica degli H...
Noctua NH-D15 Chromax.black è rea...
NVIDIA aggiorna DGX Spark: nuovo kernel,...
Con Work IQ, Copilot per Microsoft 365 i...
Azure Cobalt 200: svelata la nuova CPU A...
Intel a tutto tondo: tra processi in ram...
AMD FSR Redstone arriverà ufficia...
L'Olanda 'cede' alla Cina: retromarcia t...
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: 23:17.


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