- 博客(26)
- 资源 (9)
- 收藏
- 关注
翻译 增加aapt2 “keep“ 规则的准确性
appt2工具会将你的Android应用资源打包成运行时的格式。它同时会生成 ProGuard或R8需要的“keep” 规则,因此那些在资源文件中引用的类将不会被移除。一些类的例子如:仅在layout XML文件中引用的View,仅在menu XML文件中引用的 Action Provider 和仅在在AndroidManifest文件中引用的广播接收器,如果没有这些规则,它们将会在最终的APK文件中被删除。在Android Gradle plugin3.3.0-alpha05以前的版本,aapt2会生成
2021-10-30 12:33:32 174
原创 Android Gradle 资源编译 - MergeResource
Android Gradle 资源编译 - MergeResource基于 APG 3.5.3 版本、AAPT2Android Gradle Plugin 打包的过程中,AAPT2将资源的编译拆分成两个阶段:编译 和 链接。MergeResource任务就是将项目的 res目录内容与Project Library、Remote Dependency 等依赖的res目录中的内容进行合并,...
2020-05-12 14:55:38 3309
翻译 Android Studio Project Marble: Apply Changes
深入了解Android Studio的构建工作团队是如何构建 Instant Run 的继任者 Apply Changes。 这是由 Android Studio 团队发布的一系列深入了解 Project Marble 一些细节和背后原理文章的第一篇。从 Android Studio 3.3版本开始,Project Marble 是一个多发行版, 专注于使得IDE的基本功能更加可靠和完善。以...
2020-03-27 11:00:12 1088
翻译 Gradle - 使用Gradle插件
使用Gradle插件Gradle的核心在自动化的世界中并没有做太多的事情。所有有用的特性,例如:编译Java代码,都是通过添加插件的方式来实现的。插件添加新任务(例如:JavaCompile),领域对象(例如:SourceSet),约定(例如: Java 源代码路径为src/main/java)。插件能做什么在项目中引用插件能够扩展项目的功能。它能够实现的如下:扩展Gradle的Mode...
2020-03-06 08:37:00 158
原创 Android APK 中 dex 文件数量限制问题
Android apk 中 dex 文件数量限制问题背景随着应用发展App的方法数不断的上涨,为了加快Android的编译速度,我们经常会设置以下内容:android { defaultConfig { multiDexEnabled = true minSdkVersion 21 } dexOptions { preDexLibraries ...
2020-03-04 17:15:13 2265 3
翻译 Dalvik Optimization and Verification With dexopt
Dalvik Optimization and Verification With dexoptDalvik 是专门设计用于Android手机平台的虚拟机。主要目标系统是 内存较小,读写存储速度比较慢,机器性能普片比较差的桌面系统。这些系统通常运行在提供有虚拟内存,进程和线程管理,UID安全机制 的Linux系统之上。在一些条件限制和特性要求下,我们主要关注以下几个目标:类数据,尤其是字节...
2019-09-26 09:08:51 171
原创 独立部署
环境jboss6.0 + CXF2.5.2 + spring3.0.71.设置项目的独立类加载器 新建文件META-INF/jboss-service.xmlFor .war files, in your jboss-web.xml, the following template applies:<jboss-web> <cla...
2019-08-30 13:38:20 589
原创 linux 的启动执行脚本 (+oracle)
1.在/etc/init.d目录新建可执行文件 A, 编辑A文件内容,写入要执行的shell , 赋予文件执行的权限2. 新建软连接 如: ln -s /etc/init.d/a /etc/rc.d/rcN.d/S99AAA (S 代表 start , 99执行优先级 ,N 服务起的运行级别)3.oracle的自动启动2.2.2 Automating Datab...
2019-08-30 13:37:34 245
原创 方法重载类型匹配顺序
优先primitivebyte -> byte, short, int ,long ,float ,double,Byte,Number,Objectshort -> short, int ,long ,float ,doublechar -> char, int ,long ,float ,doubleint -> ...
2019-08-30 13:36:32 416
原创 Android换肤系列 Activity资源拦截与替换
要实现对Android资源加载的拦截和替换,4.4 以下的版本可通过自定义Resources子类重写父类的loadDrawable和loadColorStateList两个方法,在方法中将请求资源替换成皮肤包中的资源。在4.4的系统中重写这两个方法在运行时会收到警告,但并不影响正常运行,但这种方式在Android 5.0 以后就不在适用了。 另外一种实现资源加载拦截的方式是通过替换Reso
2016-01-11 22:42:41 1531
原创 Android换肤系列 Activity资源加载
通常在Activity的onCreate回调方法中调用setContentView方法来设置界面要显示的layout,setContentView方法会对layout文件进行解析和资源的加载。这里以常用的View、ImageView、TextView为例看下加载过程。 从上面的步骤能看出,View的初始化过程中资源的加载主要是通过TypeArra
2015-11-15 12:29:15 1092
原创 Android换肤系列 Resources
在Android中Resources类用于获取应用资源(如:图片、原颜色、文本),并自动根据地区、语言、分辨率、屏幕方向等获取相应的资源。以下doc上对Resources类的介绍: 从上面介绍中我们可以知道,Resources基于AssetManager,资源请求是通过AssetManager类来完成,而java层的AssetManager最终则是通过C++层AssetManager类来完成arsc
2015-11-08 13:26:20 1255
原创 Android换肤系列
Android 换肤1.Android换肤系列 Resources 2.Android换肤系列 Activity资源加载 3.Android换肤系列 皮肤资源加载与替换
2015-11-08 00:03:32 688
转载 Oracle in与exists
rem create table big as select * from all_objects;rem insert /*+ append */ into big select * from big;rem commit;rem insert /*+ append */ into big select * from big;rem commit;rem insert /*+ appe
2015-10-18 20:56:10 439
原创 try finally return Exception
1.当finally中没有return语句时, 生成的字节码包含了对异常的处理public static int tryReturnFinally() { int i = 0; try { i++; i = i / 0; return i; } finally { i++;
2015-10-18 20:52:53 368
原创 Android Slqite 有无索引测试
public class SqliteTest extends ActivityInstrumentationTestCase2 { private static final String TAG = "SqliteTest"; private DBHelper dbHelper; public SqliteTest() {
2015-10-18 20:49:22 363
原创 ImageView.ScaleType
1.MATRIX2.FIT_XY3.FIT_START4.FIT_CENTER5.FIT_END6.CENTER7.CENTET_CROP8.CENTET_INSIDE
2015-10-18 20:46:52 320
原创 方法重载类型匹配顺序
byte -> byte, short, int ,long ,float ,double,Byte,Number,Objectshort -> short, int ,long ,float ,double,Short,Number,Objectchar -> char, int ,long ,float ,double,Character,Object
2014-12-02 21:10:13 854
原创 VM中不同ClassLoader权限的限制
package com.wy.classloader;import java.io.File;import java.io.FileInputStream;import java.io.IOException;import java.lang.reflect.Field;import java.lang.reflect.Method;import sun.reflect.Refle
2014-11-29 22:59:34 716
原创 java 远程监控
-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port="端口" -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false
2013-08-09 17:24:29 438
原创 Nginx 安装 ssl
建立用户: groupadd nginx useradd -g nginx -r nginx 设置防火墙: iptables -I INPUT -p tcp --dport 8080 -j ACCEPT建立证书: 私钥:
2013-07-27 17:36:06 672
原创 oracle锁表
select s.username, decode(l.type,'TM','TABLE LOCK', 'TX','ROW LOCK', NULL) LOCK_LEVEL, o.owner,o.object_name,o.objec
2012-08-27 14:34:21 400
原创 linux 的启动执行脚本 (+oracle)
1.在/etc/init.d目录新建可执行文件 A, 编辑A文件内容,写入要执行的shell , 赋予文件执行的权限2. 新建软连接 如: ln -s /etc/init.d/a /etc/rc.d/rcN.d/S99AAA (S 代表 start , 99执行优先级 ,N 服务起的运行级别)3.oracle的自动启动2.2.2 Automating Databa
2012-05-03 17:30:39 687
转载 mysql 调整
同时在线访问量继续增大 对于1G内存的服务器明显感觉到吃力严重时甚至每天都会死机 或者时不时的服务器卡一下 这个问题曾经困扰了我半个多月MySQL使用是很具伸缩性的算法,因此你通常能用很少的内存运行或给MySQL更多的被存以得到更好的性能。 安装好mysql后,配制文件应该在/usr/local/mysql/share/mysql目录中,配制文件有几个,有my-huge.cnf my-
2011-10-27 23:13:14 315
转载 mysql设置
key_buffer_size 非常重要,如果你使用MyISAM表。如果只使用MyISAM表,那么把它的值设置为可用内存的30%到40%。恰当的大小依赖索引的数量、数据量和负载 记住MyISAM使用操作系统的cache去缓存数据,所以你也需要为它留出内存,而且数据通常比索引要大很多。然而需要查看是否所有的 key_buffer总是在被使用key_buffer为4G而.MYI文件只有
2011-10-27 23:11:43 337
原创 源代码安装 mysql5.1 与 5.5
OS: Red Hat Enterprise Linux Server release 4.0 MySQL: 5.1.59源码 放置在 /root/insatll/mysql , 安装目的地是/usr/local/mysql-5.11.准备 创建一
2011-10-16 23:55:16 1109
java面试题目,供大家学习面试题
2009-03-29
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人