今天遇到了这个问题,出错主要两种方面 提示 布局的 XML 文件无法加载 提示找不到 drawable 文件 第一种 ‘ 布局的 XML 文件无法加载 ’ 报错是这样的: Binary XML...file line #28: Binary XML file line #28: Error inflating class Button 第二种 ‘ 找不到 drawable 文件 ’ 报错是这样的...: android.content.res.Resources$NotFoundException: Resource ID #0x7f070083 发生这两个错误的原因是 Android 操作系统的版本问题...解决方法都一样: 检查有用的 ‘ xml ’ 文件是不是存放在,drawable 文件夹下,drawable-v24 包下?...如果是的话,将其移到 drawable 包下即可: 最后说一句,在 drawable-v24 这种对操作系统版本有限制的包下,轻易不要放东西。 【 如果本文对你有帮助,欢迎关注我获得更多资讯 】
相反,如果设为false,即使在文件夹下拥有相同资源,应用不会自动地去相应文件夹下寻找资源: 如果drawable-hdpi、drawable-mdpi、drawable-ldpi三个文件夹中有同一张图片资源的不同密度表示...,那么系统会去加载drawable_mdpi文件夹中的资源; 如果drawable-hpdi中有高密度图片,其它两个文件夹中没有对应图片资源,那么系统会去加载drawable-hdpi中的资源,其他同理...2.1.2 横屏竖屏目录区分 drawable a) drawable-hdpi该图片即适用于横屏,也适用于竖屏; b) drawable-land-hdpi,当屏幕为横屏,且为高密度时,加载此文件夹的资源...; c) drawable-port-hdpi,当屏幕为竖屏,且为高密度时,加载此文件夹中的资源。...其实很简单,只需要在res目录下创建不同的layout文件夹,比如:layout-640x360、layout-800x480……所有的layout文件在编译之后都会写入R.Java里,而系统会根据屏幕的大小自己选择合适的
相反,如果设为false,即使在文件夹下拥有相同资源,应用不会自动地去相应文件夹下寻找资源: 1) 如果drawable-hdpi、drawable-mdpi、drawable-ldpi三个文件夹中有同一张图片资源的不同密度表示...,那么系统会去加载drawable_mdpi文件夹中的资源; 2) 如果drawable-hpdi中有高密度图片,其它两个文件夹中没有对应图片资源,那么系统会去加载drawable-hdpi中的资源,其他同理...2.1.2 横屏竖屏目录区分 1) drawable a) drawable-hdpi该图片即适用于横屏,也适用于竖屏; b) drawable-land-hdpi,当屏幕为横屏,且为高密度时,加载此文件夹的资源...; c) drawable-port-hdpi,当屏幕为竖屏,且为高密度时,加载此文件夹中的资源。...其实很简单,只需要在res目录下创建不同的layout文件夹,比如:layout-640×360、layout-800×480……所有的layout文件在编译之后都会写入R.java里,而系统会根据屏幕的大小自己选择合适的
大家都知道,在Android项目当中,drawable文件夹都是用来放置图片资源的,不管是jpg、png、还是9.png,都可以放在这里。...除此之外,还有像selector这样的xml文件也是可以放在drawable文件夹下面的。...关于建议使用mipmap的原文可以参阅这篇文章:Getting Your Apps Ready for Nexus 6 and Nexus 9, 当然你还是要访问外国网站的。...因此,当我引用android_logo这张图时,如果drawable-xxhdpi文件夹下有这张图就会优先被使用,在这种情况下,图片是不会被缩放的。...如果你有兴趣的话可以使用其它几种dpi的drawable文件夹来试一试,应该都是适配这套缩放规则的。
,可以直接使用 cmd 进行编译; ndk 为 android-ndk-r10d(强烈建议使用 r9 或 r10 系列,因为这两个能在 cmd 中编译出 .so),r10d 能够支持的 android...如果使用 cygwin,要做好心理准备,下载和安装它,非常非常的久,文件总体积 20 多G!!!!我是用了9个多小时。 3,---opencv for android 的sdk 下载完成后。...4,编译 .so 使用你的 as 创建一个新项目,然后在你的 项目的 main 目录下创建一个一个 jni 文件夹,这样创建: ? 创建好了之后,是这样的: ?...文件夹下面 分别创建 Android.mk 、Application.mk 和你要编译的 .cpp 或者.c 文件,前两个的 内容可以模仿我上面介绍的, .cpp 我这里提供一个。...你可以在 as 的 cmd 中或者 系统的 cmd框中实现编译,首先使用命令进入到当前的 jni 文件夹的 目录,例如,我的是 D:asproject/JniDemo/app/main/jni,然后使用命令
概述 我们知道在Android的打包过程中,有一个步骤是压缩,也是为了减少apk包的大小,其中在压缩的过程中,很大一部分就是对资源的压缩,除了系统的压缩方案之外,我们今天讲另外两种压缩方案:微信方案和美团方案...根据Android的编译流程,所有资源ID已经被编译成32位int值。...这说明我们并不需要去修改xml与java,因为在编译过程已经被R.java所替换,我们直接修改resources.arsc的二进制数据,不改变打包程,只要在生成resources.arsc之后修改它,同时重命名资源文件...jar文件, .apk文件), 它也可以把资源编译为二进制文件,并生成resources.arsc, AAPT这个工具在APK打包过程中起到了非常重要作用,在打包过程中使用AAPT对APK中用到的资源进行打包...(具体处理方式视文件后缀不同而不同,例如:”.xml”会编译成二进制文件,”.png”文件会进行优化等等)后才进行打包; 会对除了assets资源之外所有的资源赋予一个资源ID常量,并且会生成一个资源索引表
文件夹的路径,一般是在用户账号文件夹下,比如我这里是C:\Users\issuser.gradle会发现该文件夹下生成了下图中的文件 ?...build 这个目录你也不需要过多关心,它主要包含了一些在编译时自动生成的文件。...main/AndroidManifest.xml 这是你整个Android项目的配置文件,你在程序中定义的所以四大组件都需要在这个文件里注册,另外还可以在这个文件中给应用程序添加权限声明。....gitignore 这个文件用于将app模块内的指定的目录或文件排除在版本控制之外,作用和外层的.gitignore文件类似。...以drawable开头的文件夹都是用来放图片的; 以mipmap开头的文件夹都是用来放应用图标的; 以values开头的文件夹都是用来放字符串、样式、颜色等配置的; layout文件夹是用来放布局文件的
Compile With: 指程序将使用哪个版本的SDK进行编译,这里选择Android 8.0.0。 7....在图中,可以看到一个Android程序由多个文件以及文件夹组成,这些文件分别用于不同的功能,常用文件和文件夹如下: 1.src: 该目录是放置所有Java代码的地方,在这里的含义和 普通...其中,drawable目录分为不同的文件夹:drawable-hdpi、drawable-ldpi、drawable-mdpi、 drawable-xhdpi、drawable-xxhdpi,这些文件夹中存放的图片分别对应不同的手机屏幕大小...9.res/layout: 存放xml 界面文件,xml 界面文件和HTML 文件一样,主要用于显示用户操作界面。 10.res/values: 存放应用使用到的各种类型数据。...16.project.properties: 该文件记录了 Android项目运打时的环境,并通过一行代码指定了编译程序时所使用的SDK版本,这个版本可以手动更改,但必须是已下载的版本 3.2走进
" 8 android:checked="true" //设置为已选中,则显示的效果为选中的字体颜色 9 android:text..." android:background="@color/radio_group_selector" 这个就要对应两个文件 在res文件夹下创建一个名称为color文件夹,然后在...color文件夹中创建一个xml文件 color_radiobutton 用于设置改变字体的选中点击颜色变化 即文件目录为: res/color/color_radiobutton 这个文件的代码为...9 10 在res文件夹下创建一个名称为color文件夹,然后在color文件夹中创建一个xml文件 radio_group_selector 用于设置改变字体的选中点击颜色变化...可以看到 当点击的情况下 颜色是绿色 背景是绿色,没有被点击的情况下 文字是白色的颜色,背景是黑色的 当然还要在res/values/color.xml中设置颜色 1 <?
3.AndroidManifest.xml:Android 配置文件,编译过程依然被转换为 AXML 格式。...5.resources.arsc:具有 id 值资源的索引表(asserts 文件夹中的资源不会生成索引)。...Apk 的核心逻辑主要在 classes.dex 中,破解和二次打包也基本上对这个文件做手脚,所以对这个文件的保护也尤为重要。 ?...那么什么是 smali 文件呢? 1.Smali 是 Android 的 Dalvik 虚拟机所使用的一种 dex 格式的中间语言。...以手机XX应用为例,当你按照上述步骤反编译,重新编译,签名之后,进入 APP 会出现这个页面,无法正常使用。 因为你并没有这个 APP 的正版签名文件(关于签名相关的东西,在后面我再仔细讲)。 ?
build 这个目录你也不需要过多关心,它主要包含了一些在编译时自动生成的文件。....gitignore 这个文件是用来将指定的目录或文件排除在版本控制之外的。 build.gradle 这是项目全局的gradle构建脚本,通常这个文件的内容是不需要修改的。...main/AndroidManifest.xml 这是你整个Android项目的配置文件,你在程序中定义的所以四大组件都需要在这个文件里注册,另外还可以在这个文件中给应用程序添加权限声明。....gitignore 这个文件用于将app模块内的指定的目录或文件排除在版本控制之外,作用和外层的.gitignore文件类似。...3、项目中的资源 以drawable开头的文件夹都是用来放图片的; 以mipmap开头的文件夹都是用来放应用图标的; 以values开头的文件夹都是用来放字符串、样式、颜色等配置的; layout文件夹是用来放布局文件的
drawable- hdpi、drawable- mdpi、drawable-ldpi的区别: (1)drawable-hdpi里面存放高分辨率的图片,如WVGA (480x800),FWVGA (480x854...android:anydensity="true"> (b)创建自己的layout 系统会根据机器的分辨率来分别到这几个文件夹里面去找对应的图片...还要在res目录下创建不同的layout文件夹,比如layout-640x360,layout-800x480,所有的layout文件在编译之后都会写入R.java里,而系统会根据屏幕的大小自己选择合适的...这里有个插曲,我创建好layout-large以后发现使用800.480的屏幕还是调用默认的layout,最后才发现layout-large里面所用的资源,一定要放入drawable-hdpi里面) 2...如果模拟器尚未启动,可以在Eclipse的项目Run as=>Open Run Dialog对话框中设置,如果android模拟器已经启动后,可以使用快捷键F12或Ctrl+F11来切换。
把所有的资源都分类存放在一起以后,还要在程序中把资源提取出来。系统提供了三种访问资源的方法。...创建一个round_button.xml文件。它会根据按钮的状态来切换使用不同的样式(指向不同的drawable)来呈现动态的效果。...答案:在Android中不能直接打开res/raw目录中的数据库文件,而需要在程序第一次启动时将该文件复制到手机内存或SD卡的某个目录中,然后再打开该数据库文件。...答案:第一种是res下可编译的资源文件,这种资源文件系统会在R.java里面自动生成该资源文件的ID,(除了raw外,其他资源目录中的资源文件都会被编译),这也是为什么将APK文件解压后无法直接查看XML...第二种就是放在assets文件夹下面的原生资源文件,放在这个文件夹下面的文件不会被R文件编译,所以不能像第一种那样直接使用。
image.png image.png 整体的目录结构 gradle:Gradle配置文件,由系统自动生成,一般情况下不需要进行修改。 entry:这个是我们大多数开发中需要用到的文件夹。...它的目录结构如下所示: image.png libs:导入的Java引用包放在这里,比如你需要在项目中使用java发送邮件,可以将mail.jar包放在这里然后导入项目。...src-main-resources:用于存放资源文件。 media:存放项目中需要使用的本地多媒体内容,多媒体包括图片,视频,音频等。相当于Android项目中的drawable。...graphic:存放shape标签内容,常用于设置background-element背景属性,在Android中是放置在drawable中的,这里单独列出文件夹进行放置。...build.gradle:entry模块的编译配置文件。 src-test:编写测试文件的目录。
其实很简单,只需要在res目录下创建不同的layout文件夹,比如layout-640×360,layout-800×480,layout-xhdpi,layout-xhdpi-v19所有的layout...文件在编译之后都会写入R.java里,而系统会根据屏幕的大小自己选择合适的layout进行使用。...里面存放低分辨率的图片,如QVGA (240×320) 系统会根据机器的分辨率来分别到这几个文件夹里面去找对应的图片。...在开发程序时为了兼容不同平台不同屏幕,建议各自文件夹根据需求均存放不同版本图片。 ...(baseline) ldpi: 0.75 比如一个48dp x 48dp的图片在不同文件夹下的px大小 xxxhdpi:192*192 xxhdpi:144*144 xhdpi:96*96 hdpi:
然而,定义布局的最简单和最有效的方法是使用XML文件,这更符合人们的阅读习惯。XML与HTML相似,因为它使用XML元素的名称来表示视图。...DA70D6" android:layout_weight="2"/> raw和assets文件夹下的文件 我相信你对这两个文件夹并不陌生...如果我们不想将文件编译成二进制文件,我们可以将文件放在这两个目录中。...两者之间的差异如下: Res/raw:该文件将映射到R.java文件,该文件可以通过资源ID直接访问,并且不能具有目录结构,即不能创建文件夹 资产:它不会映射到R.java文件。...它可以有一个目录结构,也就是说,它可以自己创建文件夹 AssetManager am = getAssets(); InputStream is = am.open("filename"); 简单的加密处理流程
一、混淆的意义 混淆代码并不是让代码无法被反编译,而是将代码中的类、方法、变量等信息进行重命名,把它们改成一些毫无意义的名字,同时也可以移除未被使用的类、方法、变量等。...2、移除未被使用的类、方法、变量等。 二、混淆的规则和配置 凡是需要在AndroidManifest.xml中去注册的所有类的类名以及从父类重写的方法名都自动不会被混淆。...shrinkResources会对就是没有被引用的文件(经过实测是drawable,layout,实际并不是彻底删除,而是保留文件名,但是没有内容),但是因为需要知道是否被引用所以需要配合mififyEnable...(4)proguard-android.txt和proguard-rules.pro proguard-android.txt:代表系统默认的混淆规则配置文件,该文件在/tools/proguard下,...(5)proguard文件夹 代码混淆生成apk之后,项目下面会多出来一个proguard文件夹,proguard文件夹中四个文件的作用。
如果想要让应用中的所有窗口都应用刚才定义的my_theme主题,则只需要在清单文件中的Android SDK在编译应用时会自动加载图片资源,并在R类中生成对该资源的索引。...如果想要在java代码中访问到实际的图片Drawable对象,而不是R类中int类型的索引,可以利用Resources类提供的```Drawable getDrawable(int id)方法。...定义: 1、在Drawable文件夹下,右键new一个新的drawable resource file 2、根元素为selector,可以理解为状态选择器 3、根元素下可以包含多个...这个时候ColorStateList就能派上用场了: 不同的是,这次我们不再在drawable文件夹上右击新建了,而是再创建一个color文件夹,并在里面新建名为button_text_color.xml
APP 目录下进行分析 build 编译时自动生成的文件 libs 使用了第三方 jar ,存放目录 androidTest 编写 Android Test 测试用例的,可以对项目进行一些自动化测试 Java...我们所使用的四大组件都需要在这里注册,权限的申请也在这里,经常使用 test 编写 Unit Test 测试用例,是对项目进行自动化测试的另一种方式 .gitignore 版本控制(app 模块内),用于设备版本控制的时候忽略的内容...drawable 文件夹也应该是相同的道理,我们应该自己创建多个目录:drawable-hdpi drawable-xhdpi drawable-xxhdpi drawable-xxxhdpi 图片最好分别制定多个...只有一套图的时候,把图片放到 drawable-xxhdpi 文件夹 1.3.6 详解 build.gradle 文件 Android Studio 是基于 Gradle 来构建项目的,Gradle 是一种非常先进的构建工具...compileSdkVersion 指定编译版本,这里指定的 24 表示使用 Android 7.0 系统的 SDK 编译。
领取专属 10元无门槛券
手把手带您无忧上云