网站建设资讯

NEWS

网站建设资讯

androiduid,androidUI代码

安卓的UID是什么意思

Android 里的 UID 是 跟随着「软件」(例如 Android 应用程序)。 由于每个应用程序都有个 UID,只有带着此 UID,才能存取该 UID 所涵盖的有关资料。就跟安装软件的附件一样吧。

创新互联成立与2013年,先为建邺等服务建站,建邺等地企业,进行企业商务咨询服务。为建邺企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。

如何获得所有android应用程序UID

一、修改Android Studio(以下简称AS)的内存配置

因为在导入源码时需要消耗大量内存,所以先修改IDEA_HOME/bin/studio64.vmoptions(x86的机器修改studio.vmoptions)中-Xms和-Xmx的值。文档中使用的是748m, 可自行修改。

二、配置AS的JDK、SDK

在IDE中添加一个没有classpath的JDK, 这样可以确保使用源码里的库文件

并将其作为要使用的SDK的Java SDK。

三、生成导入AS所需配置文件(*.ipr)

①编译源码(为了确保生成了.java文件,如R.java;如果编译过,则无需再次编译)

②检查out/host/linux-x86/framework/目录下是否有idegen.jar

如果idegen.jar不存在,执行:

mmm development/tools/idegen/

在5.0.1的源码中会生成res.java的文件夹,导致idegen.jar运行时抛FileNotFoundException,这是idegen的代码不够严谨造成的。

我的分享里有修改这个bug的patch,或者直接使用我分享的idegen.jar。

③执行

development/tools/idegen/idegen.sh

等待出现类似下面的结果:

Read excludes: 5ms

Traversed tree: 44078ms

这时会在源码的根目录下生成android.ipr和android.iml两个IntelliJ IDEA(AS是基于IntelliJ IDEA社区版开发的)的配置文件

Tips:

AS在导入代码时比较慢,建议先修改android.iml,将自己用不到的代码exclude出去.可以仿照过滤.repo文件夹的语法,如:

excludeFolder url="" /

excludeFolder url="" /

excludeFolder url="" /

删除掉所有不需要的module-library项

这样在导入时就会跳过abi和art文件夹.过滤的越多,AS的处理速度就会越快.

④在AS中打开源码根目录下新生成的android.ipr

如果在导入时AS出现

则建议按照其给定的解决方法来解决(网址:)

四、解决源码中跳转错误问题

①为当前工程设置正确的SDK和JDK

②设置'Modules'的依赖

先将所有依赖删掉(注意:这里删除全部只是为了方便。如果确实用到了.jar,在将它们的路径添加进来就可以了.

如:5.0.1的ContactsCommon用到了geocoder-2.9.jar和libphonenumber-6.2.jar)

点击指向的'Jars or directories'选项,依次将frameworks和external文件夹添加进来.如:

注:推荐把frameworks和external这两个移到最上面,这样在代码跳转时会优先从这两个文件夹下查找,而不是在Android.jar中查找。

其它版本的代码在添加frameworks时可能会显示成:

没有关系,只是显示问题,点击OK还是会把frameworks路径添加进去的.

如果还有代码跳转错误,请仿照上面的步骤将相应代码的路径或jar文件添加到其Dependencies标签页中即可.

五、DEBUG源码

可以通过给刚导入的工程在'Modules'中添加'Android Framework'来让AS将它作为一个Android工程,从而方便调试代码.

可以来添加Android Framework支持.

在代码中加断点,然后选择'Run'-'Attach debugger to Android process'

在弹出的选择进程(Choose Process)对话框中,勾选显示所有进程,选择要DEBUG的代码所在的进程,点击OK即可.

六、其它

代码中很多地方提示Call requires API Level x.... 出现这个问题是因为AS将工程当做安卓应用程序工程了,且源码中没有指定minSdkVersion.

只需在源码根目录加一个声明minSdkVersion的AndroidManifest.xml文件即可(分享了一个AndroidManifest.xml)。

也可以考虑使用build.gradle来解决该问题。

Android中的uid

uid 是user 用户id

Android 里的UID是基于应用程序,每一个程序都有一个UID,如果应用程序1和应用程序2的uid不同,则在default情况下,二者无法读取对方的数据,这样提升了应用的安全性。

当使用者安装了某一应用程序时,android系统就会赋予一个uid,用户可以在屏幕上的窗口里可以检视这个AndroidManifest.xml档案的内容,用户回了解这个应用程序的目的、权限等,并选择接受与不接受。

一些特殊情形下,两个应用程序是可以持有一样的UID。

例如,当需要推出新版本时,这两种版本的程序可以持有一样的UID, 才有权限将旧版程序的数据转移到新版软件里。

Pid 是 process 进程ID,Uid 是 user 用户ID,只是Android和计算机不一样。

计算机每个用户都具有一个Uid,而Android中每个程序都有一个Uid。

默认情况下,Android会给每个程序分配一个普通级别互不相同的 Uid,如果用互相调用,只能是Uid相同才行,这就使得共享数据具有了一定安全性。

每一个不同的 程序 都能有一个UId,但是一个应用里面可以有多个PId。

一个用户可以打开多个进程(Pid),并且这些进程的uid是一样的;

一个pid对应一个进程,每次打开时系统都会赋予不同的pid,但是uid是当你安装Apk时,系统赋予的,是不变的,除非你卸载了重装,又会重新赋予一个Uid;

参考: 认识Android的UID(Unix user ID)与权限

ANDROID 中UID与PID的作用与区别

android中如何生成uid

一般android系统会自动为应用生成一个uid,并且每个应用会被分配不同的UID ,用于管理各个应用的权限以及数据共享。。。其次我查了一些资料。在AndroidMenifest.xml中 在manifest标签里面增加 android:sharedUserId="xxxx",“xxxx”就是你自定义的uid了。。

Android uid

Process#uid 即 ApplicationInfo#appId 、UserHandle#appId 为从 Process#FIRST_APPLICATION_UID 开始增加的数字。其中约定 system 应用的 uid 为 Process#SYSTEM_UID,phone 进程为 Process#SYSTEM_UID 等。

这个 uid 在应用安装时就由 PMS 分配:

android系统的uid问题??

不对,UID不是数字,PID才是,PID也没有你说的那种情况。应用程序的UID是app_#,#代表数字。而系统进程的UID是root或者system

连上android设备或者模拟器,进入adb shell,top就可以看到当前所有进程。


分享标题:androiduid,androidUI代码
网页路径:http://cdweb.net/article/dscdchd.html