How to access Package Name from JNI/NDK?

原创 2017年01月03日 15:39:20
#include <jni.h>
#include <string>
#include <unistd.h>
#include <sys/types.h>
#include <sys/file.h>

#include <dirent.h>
#include <stdlib.h>
#include <ctype.h>
#include <fcntl.h>

extern "C"
jstring
Java_xl_com_myapplication_MainActivity_stringFromJNI(
        JNIEnv *env,
        jobject /* this */) {
    std::string hello = "Hello from C++";

    //getuid

    char args[4096], path[4096];

    pid_t pid = getpid();

    snprintf(path, sizeof(path), "/proc/%u/cmdline", pid);
    int fd = open(path, O_RDONLY);
    if (fd < 0) {
        return NULL;
    }
    ssize_t len = read(fd, args, sizeof(args));

    close(fd);
    if (len < 0 || len == sizeof(args)) {
        return NULL;
    }

    printf("The package name is %s\n", args);

    hello = args;
    return env->NewStringUTF(hello.c_str());
}

http://man7.org/linux/man-pages/man2/getpid.2.html
https://android.googlesource.com/platform/system/core.git/+/donut-release/toolbox/ps.c

Android中Jni入门常见异常

在Android中如果要编写JNI。首先要在本地编写对应的native方法:代码如下: package com.android.jni.center; public class NewJni { ...
  • cao_dayong
  • cao_dayong
  • 2017年07月28日 17:10
  • 325

Android应用---基于NDK的samples例程hello-jni学习NDK开发

Android应用---基于NDK的samples例程hello-jni学习NDK开发   NDK下载地址:http://developer.android.com/tools/sdk/ndk/i...
  • LoongEmbedded
  • LoongEmbedded
  • 2014年10月07日 15:01
  • 2318

从NDK在非Root手机上的调试原理探讨Android的安全机制

最近忙着研究Android的安全技术,好长时间没有写博客了,准备回归老本行:Read the funcking android source code。这两天看NDK文档时,看到一句“Native d...
  • Luoshengyang
  • Luoshengyang
  • 2013年12月09日 01:02
  • 42321

NDK 与 JNI 的关系

简介  JNI是java语言提供的Java和C/C++相互沟通的机制,Java可以通过JNI调用本地的C/C++代码,本地的C/C++的代码也可以调用java代码。JNI 是本地编程接口,Java和...
  • banketree
  • banketree
  • 2013年10月09日 11:50
  • 36165

使用IDEA开发jni

使用IDEA或者Android Studio可以进行ndk开发。 由于Android Studio是基于IDEA的,所以方法都是通用的。(eclipes请参考网上其他网友的博文) 1、搭建JNI...
  • Mislead
  • Mislead
  • 2015年06月03日 10:29
  • 4098

Android jni/ndk编程一:jni初级认识与实战体验

Android平台很多地方都可以看到jni的身影,比如之前接触到一个投屏的项目,主要的代码是c/c++写的,然后通过Jni供java层调用;另外,就拿Android系统中的Service来说,很多的S...
  • u011913612
  • u011913612
  • 2016年09月19日 18:53
  • 1876

Android开发学习之路--NDK、JNI之初体验

好久没有更新博客了,最近一直在看一个仿微信项目,然后看源码并自己实现下,相信经过这个项目可以让自己了解一个项目中的代码以及种种需要注意的事项。不知不觉中博客已经快要40w访问量,而且排名也即将突破30...
  • eastmoon502136
  • eastmoon502136
  • 2016年02月28日 17:46
  • 14160

Android NDK开发(五)——C代码回调Java代码

在上篇博客里了解了Java层是怎样传递数据到C层代码,并且熟悉了大部分的实际开发知识,基本上掌握这些就可以做一个基本的NDK开发了,但是光是了解Java回调C层的数据是不是还不够啊,考虑问题要考虑可逆...
  • lee_tianya
  • lee_tianya
  • 2015年01月05日 09:27
  • 5549

Android面试题:对JNI和NDK的理解

JNI和NDK是面试经常被问到的热点问题,在这里做一个记录。 1.阐述你对JNI的理解  JNI的全称是Java Native Interface(Java本地接口)是一层接口,是用来沟通Java...
  • yyg_2015
  • yyg_2015
  • 2017年06月04日 12:31
  • 1690

JNI开发----一点一点搞清楚NDK开发的步骤

NDK开发流程不同版本的Android Studio可能对于NDK的配置是不一样的,本文记录我在AS2.2.2版本上的配置过程。步骤1:安装配置NDK(1)打开AS的Project Structure...
  • ccg_201216323
  • ccg_201216323
  • 2017年01月15日 18:13
  • 1171
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:How to access Package Name from JNI/NDK?
举报原因:
原因补充:

(最多只允许输入30个字)