我想弄清楚"编译资源"是什么意思.
我已经阅读了很多关于这个主题的文章,但没有找到一个简单的答案.我读过的最好的是:android资源和资源ID之间的映射是如何工作的?.
根据我的理解,当我们通过ANT(Eclipse)或Gradle(AS)编译项目时.我们使用一个名为aapt的工具--Android Asset Packaging Tool:用于为我们的每个资源生成唯一的ID,例如我们的布局,样式等,并将它们存储在查找表中.然后它通过生成两个文件来持久化此查找表:
所以要简单一点:假设我在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号码?(它是否应该表示稍后将映射到将存储对象的物理内存的值?)
当我将设备插入计算机时,我在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中停止这些恼人的消息吗?
尝试将图像作为屏幕截图上传到我的开发人员控制台时出现以下错误:
"您需要检查截图图像是否为有效图像."
我的图像是480wx800h PNG格式的图像,所以它应该没问题.(原始位图和修改后的位图).
可以任意告诉我如何解决这个问题?我想从我的应用程序上传一个示例图像,并添加一些写在图像上的指令.但我不能这样做.
我想知道AIDL中的inout参数是做什么的?
我知道里面有什么,外面有什么。(输出不会封送通过的对象)。
但是我不明白目的是什么。
我在AIDL接口参数值中查看了 “ In / out / inout”? 问题,但仍然不明白。
从我的测试中,参数通过了,就像指定它一样。
因此,如果有什么可以阐明什么是内向,那将是有帮助的。
谢谢