JNI Debuggable: সহজ ভাষায় বোঝার চেষ্টা করি!
JNI Debuggable: সহজ ভাষায় বোঝার চেষ্টা করি!
👉 প্রথমে বুঝি, JNI কী?
JNI (Java Native Interface) হলো এমন একটা ব্রিজ, যা Java এবং Native (C/C++) কোডের মধ্যে সংযোগ তৈরি করে। সহজভাবে বললে, যদি আপনি Android অ্যাপে C/C++ কোড ব্যবহার করতে চান, তাহলে JNI ব্যবহার করতে হবে।
👉 Debuggable কী?
Debuggable সেটিং বলে দেয়, অ্যাপ ডিবাগ মোডে চলবে কি না। যদি android:debuggable="true" সেট করা থাকে, তাহলে আপনি অ্যাপে ডিবাগিং করতে পারবেন।
📌 তাহলে "jniDebuggable" কী?
jniDebuggable হলো এমন একটি ফ্ল্যাগ, যা বলে দেয় Native (C/C++) কোড ডিবাগ করা যাবে কি না।
👉 কখন দরকার হয়?
যখন আপনি C/C++ কোড ডিবাগ করতে চান, তখন jniDebuggable=true করতে হবে। এটি আপনাকে Native Code (C/C++) তে breakpoints, stack trace, memory analysis করার সুযোগ দেয়।
🎯 ব্যবহার কোথায়?
এটি সাধারণত Android NDK (Native Development Kit) ব্যবহার করা অ্যাপে দরকার হয়, যেখানে C/C++ কোড লেখা হয়।
💡 বাস্তব উদাহরণ
আপনার অ্যাপে যদি C/C++ লাইব্রেরি থাকে (যেমন OpenCV, FFmpeg, বা কোনো Native Image Processing লাইব্রেরি), তাহলে ডিবাগিং করার জন্য jniDebuggable ব্যবহার করা হবে।
Gradle-এ এটি কিভাবে সেট করবেন?
android {
buildTypes {
debug {
jniDebuggable true
}
}
}
এটি চালু করলে, LLDB (Low-Level Debugger) ব্যবহার করে Native (C/C++) কোড ডিবাগ করা সম্ভব হবে।
🛑 সতর্কতা
🚨 jniDebuggable=true শুধুমাত্র Debug Build-এ রাখবেন, Release Build-এ নয়!
কারণ, এটি অ্যাপকে হ্যাকিং ও রিভার্স ইঞ্জিনিয়ারিং-এর জন্য দুর্বল করে তুলতে পারে।
Release Build-এ বন্ধ রাখতে চাইলে:
release {
jniDebuggable false
}
✅ সংক্ষেপে:
jniDebuggableবলে দেয় C/C++ কোড ডিবাগ করা যাবে কি না।- এটি Debug Build-এ রাখা হয়, Release Build-এ নয়।
- এটি Android NDK ও Native Code (C/C++) ডিবাগ করতে সাহায্য করে।
- LLDB বা GDB Debugger ব্যবহার করতে পারবেন।
- হ্যাকিং থেকে বাঁচতে, Release Build-এ
falseকরে রাখুন।
🤔 যদি বুঝতে অসুবিধা হয়?
কোনো নির্দিষ্ট অংশ জটিল মনে হলে বলুন, আমি সহজ করে আবার ব্যাখ্যা করব! 😊
Comments
Post a Comment