首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

开发工具总结(6)之Android Studio模板配置详解(提高开发效率必备技能)

(2)新建module自动生成不同分辨率drawable文件夹。 (3)指定dimens.xml路径。...,然后用编辑器打开 recipe.xml.ftl文件,并加入以下配置,如下图红色框框所示 说明: (1)dependency 这个意思是配置依赖库url,默认只有一个v7包,这里新增一个v4包依赖...="${escapeXmlAttribute(resOut)}/values/dimens.xml" /> //意思是 模板root/res/values/demins.xml 这个路径里面的dimens.xml...,放在lzw组下面,如图所示: han: 自动生成一个类继承Handler swi 自定义switch/case选择语句 toli 数组转成集合(自定义,后面会讲解怎么自定义) zs:注释模板...【说明】这个也没做太多研究,以后有时间研究一下,它写到这篇博客里面来。有兴趣可以参考这篇文章 AndroidStudioTemplate。

1.3K20

骚年你屏幕适配方式该升级!-smallestWidth 限定符适配方案

-今日头条适配方案 今日头条屏幕适配方案 讲得非常细,尽量每一个知识点都描述清晰,深怕小白漏掉每一个细节,这篇文章也会延续上一篇文章优良传统,将 smallestWidth 限定符屏幕适配方案...引用 dp_360 也是 360dp,刚好覆盖屏幕宽度 下面再来看看将 最小宽度基准 定为 360 ,values-sw400dp dimens.xml 长什么样 dp 文件夹,虽然在这种情况下,布局 dimens 引用可能有些许误差,但是也能保证最大程度完成适配 说到这里,那大家就应该就会明白为什么会说...dp 文件夹,文件夹 dimens.xml 文件是由从 1 到 375 组成 dimens 引用,所有设备屏幕宽度都分为 375 份,所以在布局文件我们应该这个 View 高宽都引用...很简单,你设计图 px 总宽度设置成 最小宽度基准 就可以,还是以前面验证可行性例子 我们在前面验证可行性 最小宽度基准 设置成了 375,为什么是 375 呢?

89820
您找到你想要的搜索结果了吗?
是的
没有找到

Android屏幕适配工具类 Android自动生成不同分辨率

本文实例为大家分享Android屏幕适配工具类具体代码,供大家参考,具体内容如下 DimenTool github地址 Android 屏幕适配方案,自动生成不同分辨率 android官方建议屏幕适配方式...然后根据不同尺寸在dimens.xml文件夹中分别计算配置不同dp或者sp单位。开发中发现,android屏幕适配需要用到很多尺寸,每个尺寸都建立dimens.xml问价。...每个文件数值都要按照比例去计算,一个一个拿着计算器去计算吗?这样太麻烦了。今天有一个好办法,来为大家介绍一下。...* 快速生成适配工具类 ,直接运行不成功需手动放入目录文件 */ public class DimenTool { public static void gen() { //以此文件夹下dimens.xml...(0.5-360,可根据项目来定范围,主要为以后方便使用),可直接项目dimens复制到你项目中 ?

1.8K50

Android完美适配dimens.xml脚本

什么是dimens文件这里就不详细阐述,相信大家都知道,不知道童鞋可以问度娘。...这里先帮大家再巩固一下像素密度相关知识: 像素密度 屏幕像素密度指单位长度屏幕显示像素,即常说dpi (dots per inch),每英寸点数。密度越高显示画面就越清晰。...Android像素密度按区间分成几种: 分类 dpi ldpi 低密度 mdpi 密度 hdpi 高密度 xhdpi 超高密度 xxhdpi 超超高密度 xxxhdpi 超超超高密度 在Android...将mdpi即密度作为基准线,即1dp= 1px; 不同像素密度,系统给定其对应比例和倍数如下: 分类目录 ldpi mdpi hdpi xhdpi xxhdpi xxxhdpi 密度(dpi)...说了那么多无非就是用到最后像素密度直接倍数关系,那么今天要走就是解放双手,不需要你手动去一个一个挨着计算dimens文件数值,而是采用脚本,帮你秒秒完成。

1.8K30

android之activity生命周期详解

,当你打完电话,返回到音乐activity时候呢,进入哪个状态呢,根据图中流程很明显,正是进入了和onStop成对 onStart里面,音乐界面是出来了,可是音乐并不播放,为什么呢,因为我们之前播放音乐线程启动放在...onCreate里面,而在前面的这几个过程里面并不涉及onCreate,.所以我们发现问题所在,为了保证音乐正常播放,我们应该音乐播放线程启动和暂停放在成对状态里,播放在onStart那么暂停就放在...BACK键,我们这个应用程序将结束,这时候我们将先后调用onPause()->onStop()->onDestory()三个方法,如下图所示:   HOME键:   当我们打开应用程序时,比如浏览器...,正在浏览NBA新闻,看到一半时,突然想听歌,这时候我们会选择按HOME键,然后去打开音乐应用程序,而当我们按HOME时候,Activity先后执行了onPause()->onStop()这两个方法...HOME键在onPause方法里,将输入赋给mString @Override protected void onPause() { super.onPause

54520

关于so文件你需要知道知识「建议收藏」

大家好,又见面是你们朋友全栈君。 1....但你不应该从你应用程序读取它,因为Android包管理器安装APK,会自动选择APK包为对应系统ABI预编译好.so文件,如果在对应lib/ABI目录存在.so文件的话。...3. .so文件应该放在什么地方 我们往往很容易对.so文件应该放在或者生成到哪里感到困惑,下面是一个总结: Android Studio工程放在main/jniLibs/ABI目录(当然也可以通过在...安装ApkPackageManagerService选择解压so文件策略 在Android系统当我们安装Apk文件时候,lib目录下so文件会被解压App原生库目录,一般来说是放到/data...倘若不正确地配置so文件,比如某些App使用第三方so,只配置其中某一种CPU架构so,可能会造成App在某些机型上适配问题,产生上述崩溃

2.3K10

Android全面的屏幕适配方案解析(三)

之前两篇屏幕适配概念梳理了还讲解了dp适配方案、宽高限定符适配方案,还没有看过童鞋可以先参考这两篇: Android全面的屏幕适配方案解析(一) Android全面的屏幕适配方案解析(二) 下面列举常用适配方案...> 测试布局文件非常简单,只设置图片,细心童鞋也发现,这里图片宽高都是设置以px为单位,而不是我们常用dp为单位,如图所示: image 是的,你没有看错,这里可以直接在布局文件里面使用具体像素...当然也是有的,首先是这个UI适配框架已经停止适配,这也意味着一旦这个框架在使用过程遇到难以解决问题,替换起来会非常麻烦且耗精力,当然如果你已经熟悉这套源码除外哈。...我们再来看看1、2、3、4表示什么意思: 1、表示最小宽度基准,填写设计图最小宽度即可。 2、表示插件默认适配最小宽度,即默认情况下会生成如下 dimens.xml 文件。...3、表示需要适配最小宽度,即你想生成哪些 dimens.xml 文件。 4、忽略不需要适配最小宽度,即忽略掉插件默认生成 dimens.xml 文件。

43510

利用Kotlin协程实现简单异步加载详解

前言 众所周知在android当执行程序耗时超过5秒就会引发ANR而导致程序崩溃。...因此在实际开发通常耗时操作放在一个新线程(比如从网络获取数据,从SD卡读取图片等操作),但是呢在androidUI更新只能在UI主线程中进行更新,因此当我们在非UI线程执行某些操作时候想要更新...在androidgoogle为我们提供AsyncTask和Handler等工具来便捷实现线程间通信。有许多第三方库也为我们实现这一功能,比如现在非常流行RxJava库。...在本篇文章想给大家分享是使用KotlinCoroutine(协程)来实现耗时操作异步加载,现在有RxJava这么屌库我们为什么还要了解这个呢?...lauch()创建并启动了一个协程,这儿参数Background是一个CoroutineContext对象,确保这个协程运行在一个后台线程,确保你应用程序不会因耗时操作而阻塞和崩溃

2K20

Android 开发17个建议,紧跟Google官方,进阶必看!

Android SDK 将你Android SDK放在home目录或其他应用程序无关位置。...使用它先安装JDK8,在Android Studio工程结构对话框它设置成为SDK路径,同时设置JAVA8_HOME和JAVA7_HOME环境变量, 然后在工程根目录下配置 build.gradle...进一步你可以使用这个特性来创建一个fragment 包含改变其它fragment逻辑 而不是这个逻辑放在activity。...colors.xml是一个调色板 在你colors.xml文件应该只是映射颜色名称一个RGBA,而没有其它。不要使用它为不同按钮来定义RGBA。...关于 ProGuard 一个普遍问题,是看应用程序是否崩溃并报ClassNotFoundException 或者 NoSuchFieldException 或类似的异常, 即使编译是没有警告并运行成功

56310

浅扒Android动态设置字体大小

说点废话 Android开发,TextView类控件应该说是很常用了。...实际上,在java代码取在dimens.xml定义一共有三种: getDimension() getDimensionPixelOffset() getDimensionPixelSize()...本着“不求甚解,遍历式开发”原则,这三种方式都试了一遍,结果发现字体大小没一个是对,这就诡异。难道这里有平行宇宙?至此,只能翻出英汉大词典,让我们去探寻一下docs吧。...偏移转换(offset conversion,函数命名offset是这个意思)作用之一是将基础简单地截短为整数,注意直接截断小数位,即取整(其实就是float强制转化为int,注意不是四舍五入...结论 Android并不提供直接从dimens.xml获取dp/sp数值方法,通过getDimensionPixelSize() getDimension() getDimensionPixelOffset

3.2K42

Android基础总结(1)

其中活动是所有Android应用程序门面,方式在应用中看到东西,都是放在活动。而服务就低调得多,你无法看到它,它会在后台默默地运行,即使用户退出了应用,服务仍然可以继续运行。...内容提供器则为应用程序之间共享数据提供可能,比如你想要读取系统电话簿联系人,就需要通过内容提供器来实现。...强大多媒体:Android系统还提供非常丰富多媒体服务,如音乐、视频、录音、拍照、闹铃等 各种传感器:Android手机中会内置各种传感器,如加速度传感器、方向传感器等 2、Android开发需要准备软件...项目中定义所有四大组件都需要在这里进行注册,另外还可以在这个文件应用程序添加声明权限,也可以重新指定创建项目指定程序最低兼容版本和目标版本。...project.properties:代表项目属性,即编译版本,对应android.jar版本 。就是通过一行代码指定编译所使用SDK版本。 4、AndroidMVC架构 ?

996100

如何优化您 Android 应用(Go 版)

在这篇文章将分享我们合作伙伴工作,优化他们 Android 应用和游戏(Go 版)。...“为了实现这一目标,我们分阶段推出了我们应用程序 - 监控崩溃和 ANR,广泛使用 Nullity Annotations 来计算运行静态代码分析工具 NullPointerException 问题...在用户测试和研究,等待应用程序或游戏加载5秒后,人们会感到沮丧,这会导致放弃和卸载。您应该它当作您窗口,以确保您拥有一个用户,并且不要让他们有机会在他们手机上安装您应用后放弃您应用。...“在考虑尺寸要求,我们将工作重点放在图像压缩格式,声音片段长度和图像分辨率上,”  Sachin Saga Cricket Champions 制造商 JetSynthesys 生产副总裁 Amitabh...总体而言,当您考虑如何让 Android 应用程序准备就绪(Go 版),请记住上述各种优化和调整。通过使用上述指导,所有开发人员已经完成了优化其应用和游戏工作,相信您将能够取得类似的成果!

1.8K20

谈一谈Android内存

而有些人是心有余而力不足,“也想优化,可是怎么去优化呢?”。本篇文章将给你带来一点启示,让你从力不从心到知道怎么去入手优化。 01 一、为什么需要做内存优化?...只要生成了.class文件,我们无论放在Windows上还是Linux,只要对应平台安装了Java虚拟机,.class文件都能够愉快被虚拟机执行。我们前面不是讲不同平台机器指令不同嘛!...为什么Android抛弃DVM而选择ART 我们都知道Android最终是将Java代码编译成.dex文件装载到虚拟机中去,DVM是基于JIT(Just In Time),即在执行时候实时将部分...每当我一个应用程序启动,zygote进程就会folk一个进程作为应用程序进程,并且与zygote进程共享分配内存堆。...当发生应用程序或者对对堆进行写操作,就会对当前堆分别做拷贝应用进程和zygote进程。

62020

配置Android项目 - 一些重要事情

gitignore 当你在Android Studio创建一个新Android项目,它已经生成了gitignore文件,但通常它不包含所有必要规则。...tools folder 如果你有一些第三方脚本,规则集或其他与您项目相关文件不要只是简单它们放在根目录 —它会造成混乱。...当从IDE运行或调试项目Android Studio会使用Android SDK工具生成调试证书自动为您APK签名。...使用本地调试keystore时有几个问题: 到期日365天 从多台计算机安装应用程序需要先卸载 google服务需要密钥库SHA-1指纹 这就是为什么通常生成调试密钥库并提交到版本控制系统。 ?...strict mode Android StrictMode可帮助您检测不同类型问题: 可关闭对象没关闭 在主线程读写文件或者访问网络 uri 暴露 … 每当检测到这样问题,它可以显示适当日志或应用程序崩溃

65120

Ubutu系统文件结构

可能不是最优秀,但我在努力做你眼中最棒。 1.文件系统类型 windows中常见磁盘格式有fat16、fat32和ntfs。windows是一个封闭系统。...在ubuntu其文件系统广泛使用ext3(ext4是ext3扩展)文件格式,从而实现将整个硬盘写入动作完整记录在磁盘某个区域上。...而且在ubuntu可以实现主动挂载windows文件系统,并以只读方式访问磁盘windows系统上文件。 ?...在ubuntu磁盘文件系统、网络文件系统都可以非常方便使用,而屏蔽网络和本地之间差异。在ubuntu中所有的文件都是基于目录方式存储。一切都是目录,一切都是文件。.../usr/lib: 应用程序和程序包连接库; /usr/local: 系统管理员安装应用程序目录; /usr/man: 帮助文档所在目录; /usr/src: Linux开放源代码; /var:

72520

利用两个僵尸账户实现对任意Instagram账户远程崩溃

本文中,作者通过对Instagram安全研究,结合Instagram在构造用户名遵循规律机制,发现Instagram后端数据库存在两个僵尸账户。...由此想到了一个点子:可以利用服务器后端对不当格式畸形数据错误解析,来触发Instagram应用程序崩溃。那要是能远程让其他Instagram用户发生崩溃,是不是就更有意思呢?...当我这个添加“幽灵用户”请求发出后,群组内成员另一名用户(Victim)手机上Instagram应用程序立即就发生了崩溃,并且所有群组成员都会被强制退出群组。...这很大可能是由于Instagram后端在解析“幽灵用户”用户名,其中空字符串(””)引发解析错误所导致,以下是崩溃事件截获事件记录: 漏洞影响 目前,该漏洞仅在Instagram for...Android应用环境测试有效,利用该Bug漏洞,可以通过添加正常成员入群,然后再添加进入前述“幽灵用户”,以此来实现对任意Instagram账户远程崩溃攻击。

98810

Android开发笔记(八十一)屏幕规格适配

如果属性发生变化,可重写onConfigurationChanged函数监测最新属性。...要对一个页面分别适配竖屏与横屏,可在res目录下创建子目录“layout-land”,该目录放是横屏布局文件,而原来layout目录放是默认即竖屏布局文件。...其实ViewStub标签也要指向不同布局文件完成适配,该方法与新建layout目录区别在于,新建layout方式是选择布局操作交给Android系统完成,而ViewStub标签方式则是在app代码自己完成...3、参照drawable处理方式,不同尺寸图片放在不同drawable目录下,详见《Android开发笔记(七)初识Drawable》。...除了drawable和layout,dimens.xml维度定义也可区分不同分辨率,具体做法就是创建“values-mdpi”、“values-hdpi”、“values-xhdpi”等目录,在这几个目录下分别保存已设置对应维度

1.4K30

每个人都要学图片压缩终极奥义,有效解决 Android 程序 OOM

,来尝试获得它尺寸,结果我们发现:程序 OOM 崩溃!...为什么会发生这种情况?首先我们想想我们为什么要获得这个Options 对象?为了获得图片尺寸大小;那我们为什么要获得原图尺寸大小?是为了按照原图尺寸和控件尺寸比例,将其压缩为适合显示大小?...所以程序也在解析这张超大图过程OOM 崩溃 那么难道就没方法了吗? 有的,之前说过:Option 内部有着众多参数,其中有一个叫做: inJustDecodeBounds 。...这里给大家举个例子,比如我这有张 4000*1000 像素图片: 当我 inSampleSize 设为 4,最后生成出来图片大小将会是:1000 x 250 像素 当我inSampleSize...设为5,最后生成出来图片大小将会是:800 x 200 像素。

36020

为什么不建议数据库部署在Docker容器内?

未解决 Docker 网络问题在1.9版本依然没有得到解决。 这些问题放在一起,容器化使数据库容器很难管理。知道你是一个顶级工程师,什么问题都可以得到解决。...将数据库放在同一个环境,它将会是有状态,并使系统故障范围更大。下次您应用程序实例或应用程序崩溃,可能会影响数据库。 知识点在 Docker 水平伸缩只能用于无状态计算服务,而不是数据库。...然而在 Docker 水平伸缩只能用于无状态计算服务,数据库并不适用。 我们没有看到任何针对数据库隔离功能,那为什么我们应该放在容器呢? 6、云平台不适用性 大部分人通过共有云开始项目。...这就是为什么我们向云提供商支付很多费用原因。当我们为实例放置数据库容器,上面说这些便利性就不存在。...如果将你数据库放在容器,那么将浪费你项目的资源。因为你需要为该实例配置大量额外资源。在公有云,当你需要 34G 内存,你启动实例却必须开 64G 内存。在实践,这些资源并未完全使用。

91120

Android-App性能优化

及时反馈,点击事件,滑动,系统事件 UI 这个涉及到android系统显示原理,我们简单了解一下: Android 显示过程可以简单概括为:Android 应用程序经过测量,布局、绘制后 surface...此时至此启动完成,用户可以使用程序(app),那么这里就会有两类创建: Application创建 当Application启动,会有一个空白启动窗口保留在屏幕上,直到系统首次完成绘制应用程序...,白屏才会消失,这也是为什么启动app会出现白屏,这个问题,也有提到过解决方式Anroid 白屏 Activity创建 当Application首次启动完成绘制后,我们UI线程会执行主活动进行以下操作...你比如,用户Back退出应用程序,然后又重新启动,应用程序会再次执行ActivityonCreate(),但会从Bundle(savedInstanceState)获取数据,我们平时应用成勋崩溃,不也是通过该方法保存数据吗...当我List集合没有用时候,一定要 list.clear() list=null 针对单例引起内存泄漏,通常是由于引用context是生命周期短造成,也就是说生命周期长持有生命周期短引用

2.1K40
领券