
Android
文章平均质量分 92
DRPrincess
向下生根,向上开花
展开
-
解决项目打jar包,资源文件不能打包的问题
需求:封装了工具类和框架,其中用到了资源文件(res文件下的图片,xml等),将我们封装的工具类使用在客户的app上,要求以jar包的方式调用,不能暴露源码。出现问题:我封装了一个UI,需要用到资源文件,但是eclipse不能满足将项目联同资源文件一起打包,尽管Export Jar File时全勾选了.问题解决思路:1.使用一个中间项目,添加工具类的jar和资源文件原创 2016-04-06 21:25:18 · 6543 阅读 · 1 评论 -
Android-序列化的人生三问
何为三问?广为流传的人生三问是:我是谁?我从哪里来?我要到哪里去?就像西游记中唐僧每次都这样介绍自己:贫僧唐三藏,从东土大唐而来,去往西天取经。不过,今天我不是来回答自己的人生问题,而是想通过类似的三个思考角度,What-Why-How三部曲来解释序列化的人生意义。What?序列化是什么?序列化是指将对象转换为对象流的一种机制。我们可以把它看做对象数据的两种存在方式...原创 2018-09-07 01:50:58 · 433 阅读 · 0 评论 -
Android-组件化改造项目之概述
一个关于组件化的念头项目经历了岁月的洗礼,经过公司业务上的变化,开发人员的来来往往,代码越来越臃肿和复杂难懂,这时候就必须进行拆分,否则就是一场灾难。就像我们公司的老项目一样,耦合度极高,已经停掉的业务,现在还在项目里面留存着,完全不敢删。新功能上线,因为要回归测试,测试时间有时候比开发时间还长。组件化这个词,我们应该在各个地方,通过各种渠道,看到过无数次,而且一般会给配上下面这张图,小机......原创 2018-08-23 01:23:45 · 2384 阅读 · 0 评论 -
Android-组件化如何处理多个ModuleApplication共存问题?
一个美好的设想组件化的目的是为了业务解耦,每个业务模块需要不同的功能,例如车辆详情模块需要第三方分享,城市定位模块需要百度地位等。有些特殊功能的初始化需要在 Application 中去做,但是这些功能并非全部业务组件都用到的东西,放到 BaseApplication 不合适。因此,我想这样操作:模块共有的初始化,放入BaseApplication 中。模块自身的特殊功能初始化,放...原创 2018-08-27 01:41:27 · 23555 阅读 · 11 评论 -
Android - 记如何解决Conflict with dependency ‘com.android.support:support-annotations‘
版本冲突天天见最近,和 AS 君的某个红色小错误非常有缘分,经常见面。从报错信息中,得知是冲突原因是 support-annotations 有两个版本, 26.1.0 和 27.1.1 。感觉瞬间就找到了问题有没有? Too young too simple ,sometime naive 。因为 build.gradle 中并没有对 support-annotations...原创 2018-08-01 00:17:45 · 4523 阅读 · 0 评论 -
朋友,可以知道你的命名习惯吗?
邀请你给一个按钮命名每个 coder 都有自己的编码习惯,举个小例子: 你会给一个登录按钮的控件ID,怎么命名?btnLoginbtLoginbtn_loginloginButtonloginBtndenglu等等我的习惯是 btnLogin,你是哪种 style 呢?标准很重要开发公司的一个老项目时,项目迭代历史悠久,从命名风格中可以看到不少开发人员...原创 2018-07-25 10:39:49 · 535 阅读 · 0 评论 -
Android-巧妙利用CompoundDrawables
这是很方便的一个操作给控制设置附加图片,这类需求在实际开发中使用频率很高,例如下面:用RadioGroup 方式实现需求是最方便的,图片可以用 RadioButton 的 DrawableTop 添加。放大镜小图标通过 EditText 的 DrawableLeft 方式实现。 以上的需求有多种方式可以实现,但在我看来,对于提示性的小图标,View&View....原创 2018-07-05 18:08:20 · 1805 阅读 · 0 评论 -
Android-为什么 RadioGroup.onCheckedChanged() 会调用多次?
可能你自己都不知道你踩过这个坑。 有这么一个坑同学,你有没有遇到 RadioGroup.onCheckedChanged() 莫名其妙调用多次的情况?你是怎么解决的?使用setChecked() 替代 setChecked() 是不是?是的,这是一个有效的解决方法,那你知道为什么吗?先自己挖坑做个实验事实上,这个坑的隐藏属性还是不低的,因为不出问题掉下去摔一下,你...原创 2018-05-28 00:04:46 · 10677 阅读 · 4 评论 -
Android-发布项目到到 JCenter 仓库
写在前面阅读这个博客,你会知道Maven 的概念是什么?为什么要将代码上传到 Maven 仓库 ?Maven 仓库的地址是从哪里来 ?JCenter 和 Maven Central 是什么?如何将项目发布到 JCenter 仓库?Maven 是什么?Maven 官网 上的介绍: Apache Maven is a software project manag...原创 2018-02-07 17:38:44 · 2998 阅读 · 7 评论 -
Android-少不了的 AAR 文件常识,最好知道的注意事项
AAR,为 Android 而生。在使用 Eclipse 开发 Android 的那个时代(其实也就几年前而已),如果想代码打包,只有 JAR 包一个方法,但是 JAR 只能把 Java 文件代码打包进去,如果要使用一个有布局和资源的库的话,除了将 JAR 放入 libs 外,还需要引入相关的资源和配置文件,十分不优雅。Android Studio 出来之后,出现了一个新的方法,打包 AA原创 2018-01-31 18:05:04 · 17491 阅读 · 3 评论 -
Android-Nexus 搭建自己的 Maven 仓库 & Gradle 上传依赖包
搭建 Nexus 私服,并从一个 Android 开发者的角度去上传依赖到 Nexus 私服。前言这是一篇旨到弄清以下问题的博客:Maven 仓库分类?Nexus 仓库是什么?Nexus 和 Maven 的关系?为什么要创建 Nexus 仓库?如何搭建 Nexus 仓库?为什么仓库 release 和 snapshot 之分?snapshot 仓库要怎么使用?...原创 2018-02-27 11:14:31 · 12199 阅读 · 9 评论 -
Android-7.0系统安装异常之解析包错误
关于这个毛茸茸的小错误最新在开发一个新的 APP ,实现版本更新功能时,出现了覆盖安装的时候,在 Android 7.0 系统上出现解析包错误。报错信息:核心报错信息:java.lang.SecurityException: Permission Denial: opening provider android.support.v4.content.FileProvider from Process原创 2017-12-28 16:57:53 · 24356 阅读 · 10 评论 -
Build Tools & Platform Tools & Tools & platform & Gradle 貌似复杂的依赖关系
写在前面这篇博客的主题不是很明显,但是等你看完,可以明白两个问题:Build Tools & Platform Tools & Tools 的区别。Build Tools & Platform Tools & Tools & Platform & Gradle 这几个货版本到底是怎么相互依赖对应的。开篇在安装和配置 Android Studio 的时候,有一个很重要的步骤原创 2018-01-11 18:01:37 · 2130 阅读 · 0 评论 -
Android-使用adb和aapt查看应用信息
很日常的一个开篇想知道一个应用的信息,有很多种方式,但是某些时候,你只有一个手机,手机上安装着目标应用,或者你只有一个安装包的时候,我想,一些小巧的查看方式就显的比较亲切了,例如 adb 和 appt。adb 和 aapt 都是 Android SDK 自带的工具,adb 位于 sdk/platform-tools,aapt 位于 sdk/build-tools/,如果配置了该目录的环境变量,可以在原创 2017-11-07 11:16:40 · 9509 阅读 · 2 评论 -
Android-项目中采用的混淆加固多渠道打包方案
前言当我们万分努力将项目开发完成之后,提交最后一行代码后,会怎么样? 长舒一口气,终于完成了,给自己放一天假,休息一下吧?不,还没完,作为一个 Android 开发者,我们接下来做的事情还有不少呢。第一步 :混淆和加固应用实不相瞒,我之前从未对我的应用加固过,因为我感觉用户量不是太大,也不会有人有兴趣来反编译或者攻击。直到我看到这一句话: 当用户使用你的应用的那一刻起,作为开发者,你就有责任去原创 2017-08-22 14:57:26 · 1494 阅读 · 1 评论 -
Android-真机应用安装失败原因
前言:作为一个移动平台的开发者,谁没遇到过,apk 安装失败的情况~ 反正我是遇到过,还遇到过好几次,每次的原因还不一样,下面是记录汇总,方便自己,也方便他人。那些年的安装失败:1.INSTALL_FAILED_USER_RESTRICTED原因:这个问题,我是在魅族手机上碰到的,原因是 APP 初次安装时,会弹出一个是否允许安装的对话框,我手一抖点击了禁止安装。解决方法:手机管家->权限管理->原创 2017-07-24 19:21:19 · 12217 阅读 · 1 评论 -
Android——关于android6.0的权限问题
推荐此文章:http://mp.weixin.qq.com/s?__biz=MzA4MjU5NTY0NA==&mid=402100165&idx=1&sn=62402be988f370ba802184af543f9789&scene=24&srcid=0826sNJU87qOxCHIHW0menzX#wechat_redirect转载 2016-08-27 15:57:21 · 663 阅读 · 0 评论 -
Android-几行代码通知系统自动安装apk
前言:在Android的app中,经常会收到应用程序有新版本发布,询问是否更新的对话框,点击更新之后,安装成功,之后会显示如下图所示的页面,询问是否打开这个新安装的apk.这个是怎么做到的呢?实现步骤:在这之前首先要说一个关于自动更新的流程:1.发现新版本,弹出对话框通知更新2.点击更新,下载新版本的.apk文件到本地3.安装这个apk原创 2016-08-22 22:41:10 · 10851 阅读 · 0 评论 -
Charles 在 Android 7.0 上会 Client SSL handshake failed ?
叮,成功触发隐藏 BUG最近打 Release 包提测后,用 Charles 代理项目,偶然发现在某些设备上会代理失败。而且很无语的是,当时的场景是周围的小伙伴们都没有出现这个问题,只有我总是代理失败。这莫名的熟悉感,我知道我可能又要触发一个隐藏 BUG 了。看下代理失败的具体表现:Client SSL handshake failed: An unknown issue occurre...原创 2018-10-31 22:35:12 · 6637 阅读 · 0 评论