如何打开android 源代码

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何打开android 源代码相关的知识,希望对你有一定的参考价值。

用eclipse打开哪个文件

  

  在Eclipse中查看android源代码

  1.需要下载一个对应的android sdk,下完了后找到souce目录,将其中所有的内容拷贝到eclipse所用的sdk下的source目录下,如果没有这个目录则新建一个。

  2.在eclipse中打开一个android的类文件,会出现如下图所示提示:

  

  点击其中的“Change Attached Source"按钮,在弹出的对话框中选择“External Floder",选择前面复制文件所在的source文件夹。

  3.重启eclipse,一切ok了,可以直接查看android的源代码,如下图所示。

  

参考技术A 导入工程文件,就是文件下的Import ,打开导入面板后选择已经存在的项目,在第二项里面,然后选择你项目的文件夹即可,eclipse会自动扫描本回答被提问者采纳 参考技术B 主要是:src里面的java文件,还有res里面的资源文件。 参考技术C 可以用配置了Android环境的eclipse,也可以直接用Android studio,都可以直接导入项目源码

如何使用本机代码 C 在 android 上打开水龙头设备?

【中文标题】如何使用本机代码 C 在 android 上打开水龙头设备?【英文标题】:How to open tap device on android using native code C? 【发布时间】:2014-09-04 21:25:38 【问题描述】:

我正在尝试为基于 Android 的应用程序构建一个 *** 客户端移动设备,这些应用程序通过 *** 隧道连接到虚拟基础架构。我有一个类似的 Linux/Windows 应用程序,我知道如何打开 tun/tap 设备(打开 /dev/net/tun)。我们如何使用 C 为 Android 做同样的事情?

另外,android.net API 中的 ***Service 类究竟做了什么?

【问题讨论】:

【参考方案1】:

如果你还想在android-native C上打开一个隧道,我建议看看android本身是如何打开它的(来自文件:services/jni/com_android_server_connectivity_***.cpp)

static int create_interface(int mtu)

    int tun = open("/dev/tun", O_RDWR | O_NONBLOCK);
    ifreq ifr4;
    memset(&ifr4, 0, sizeof(ifr4));
    // Allocate interface.
    ifr4.ifr_flags = IFF_TUN | IFF_NO_PI;
    if (ioctl(tun, TUNSETIFF, &ifr4)) 
        ALOGE("Cannot allocate TUN: %s", strerror(errno));
        goto error;
    
    // Activate interface.
    ifr4.ifr_flags = IFF_UP;
    if (ioctl(inet4, SIOCSIFFLAGS, &ifr4)) 
        ALOGE("Cannot activate %s: %s", ifr4.ifr_name, strerror(errno));
        goto error;
    
    // Set MTU if it is specified.
    ifr4.ifr_mtu = mtu;
    if (mtu > 0 && ioctl(inet4, SIOCSIFMTU, &ifr4)) 
        ALOGE("Cannot set MTU on %s: %s", ifr4.ifr_name, strerror(errno));
        goto error;
    
    return tun;
error:
    close(tun);
    return SYSTEM_ERROR;

【讨论】:

【参考方案2】:

***Service 类完全符合您的需要。它提供对 tun 设备的访问。如果没有 root 权限,您无法直接打开 /dev/net/tun。请参阅 Toy*** 示例项目或 Open*** for Android 等开源 *** 项目。

【讨论】:

是的,我确实检查了这些应用程序。我还检查了一个应用程序“Open*** Client”。在对其和类似应用程序的描述中,他们提到“不需要 root 访问权限,因为 *** tun 设备是使用 Android 4.0 (ICS) 引入的 ***Service API 处理的。还提供 Tap 设备支持。”那么 ***Service 类是否也提供 Tap 支持而无需 root 设备? 不仅是 tun。点击查看适用于 Android 的 Open*** 的常见问题解答。基本上你可以用 tun 设备来模拟 tap,但你已经写了一个小包装器/花钱请人写它 所以我能够建立 *** 连接,获得参数(IP 地址、DNS 服务器地址等)。此外,当我尝试通过 builder.establish 方法使用这些参数创建接口时,我收到以下错误。 java.lang.IllegalStateException: command '88 interface fwmark rule add tun0' failed with '400 88 Failed to add fwmark rule (No such device)' 我没有root权限,我读到的错误是我们不需要root权限有权访问 tun 设备。那么为什么我无法启动设备呢?我错过了什么? 简而言之,设备损坏。 4.4er 模拟器也坏了。 那么解决方法或解决方案是什么?非常感谢您的见解..

以上是关于如何打开android 源代码的主要内容,如果未能解决你的问题,请参考以下文章

如何使用本机代码 C 在 android 上打开水龙头设备?

Android中如何使用代码打开各种类型的文件

如何从Android中的片段单击按钮打开片段

ANDROID如何调用系统软件打开文件

Android如何知道手电筒是不是打开

如何在 Android N 中打开设备手电筒?