小编Ziv*_*gic的帖子

Android编译资源 - resources.arsc

我想弄清楚"编译资源"是什么意思.

我为了解这个问题做了什么:

我已经阅读了很多关于这个主题的文章,但没有找到一个简单的答案.我读过的最好的是:android资源和资源ID之间的映射如何工作的?.

我怎么理解:

根据我的理解,当我们通过ANT(Eclipse)或Gradle(AS)编译项目时.我们使用一个名为aapt的工具--Android Asset Packaging Tool:用于为我们的每个资源生成唯一的ID,例如我们的布局,样式等,并将它们存储在查找表中.然后它通过生成两个文件来持久化此查找表:

  1. 它生成具有这些唯一ID的R.java文件,因此我们将能够在编译期间使用我们的java代码中的资源.
  2. 它生成resources.arsc文件,该文件可以在资源*.ap_文件中找到.这个resources.arsc文件稍后将由apktool打包到apk.
    此arsc文件格式是一种在运行时由设备轻松映射和解析的格式.

一个例子:

所以要简单一点:假设我在activity_main.xml中有这个:

    <TextView android:id="@+id/my_textView"
        android:text="@string/hello_world" 
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
Run Code Online (Sandbox Code Playgroud)

我从我的onCreate中调用它:

findViewById(R.id.my_textView)
Run Code Online (Sandbox Code Playgroud)

在我的R.java文件中,我将看到:

public static final int my_textView=0x7f08003f;
Run Code Online (Sandbox Code Playgroud)

在生成的apk上使用:aapt dump资源我可以看到它包含两行my_textView:ec资源0x7f08003f com.example.lizi.liortest2:id/my_textView:flags = 0x00000000资源0x7f08003f com.example.lizi.liortest2:id/my_textView :t = 0x12 d = 0x00000000(s = 0x0008 r = 0x00)

我不明白的是:

我原以为这个resources.arsc文件不仅包含资源ID,还包含我为视图定义的所有属性,例如android:layout_width ="wrap_content".

所以现在在运行时VM尝试运行时findViewById(R.id.my_textView) 如何知道要创建哪个视图/要创建的属性?

我根本无法理解它是如何工作的......这个查找表是否也不包含属性数据?什么是0x7f08003f号码?(它是否应该表示稍后将映射到将存储对象的物理内存的值?)

resources android r.java-file

28
推荐指数
1
解决办法
3万
查看次数

三星Galaxy s2 DSR开启.不要发送DTR

当我将设备插入计算机时,我在LogCat中不断收到以下错误:

07-12 15:23:57.695: E/DataRouter(1820): DSR is ON. Don't send DTR ON.
07-12 15:23:59.700: E/DataRouter(1820): usb connection is true 
Run Code Online (Sandbox Code Playgroud)

我的操作系统是4.0.3 GT-19100T.

我看过关于它的帖子但没有答案.any1知道如何在我的LogCat中停止这些恼人的消息吗?

android

16
推荐指数
1
解决办法
2414
查看次数

将屏幕截图错误上传到开发人员控制台

尝试将图像作为屏幕截图上传到我的开发人员控制台时出现以下错误:

"您需要检查截图图像是否为有效图像."

  1. 我从我的手机中截取了一个屏幕截图,并将其作为屏幕截图上传到开发者控制台,并且它有效.
  2. 然后我只是使用油漆在图像顶部添加了一条线.
  3. 试图将修改后的图像上传到开发者控制台,但失败了.

我的图像是480wx800h PNG格式的图像,所以它应该没问题.(原始位图和修改后的位图).

可以任意告诉我如何解决这个问题?我想从我的应用程序上传一个示例图像,并添加一些写在图像上的指令.但我不能这样做.

android screenshot publishing image-uploading

4
推荐指数
2
解决办法
7819
查看次数

AIDL inout参数

我想知道AIDL中的inout参数是做什么的?

我知道里面有什么,外面有什么。(输出不会封送通过的对象)。

但是我不明白目的是什么。

在AIDL接口参数值中查看了 “ In / out / inout”? 问题,但仍然不明白。

从我的测试中,参数通过了,就像指定它一样。

因此,如果有什么可以阐明什么是内向,那将是有帮助的。

谢谢

android aidl

2
推荐指数
1
解决办法
1209
查看次数