android
文章平均质量分 84
Mr Cui
对待过去,最好的心态该是:所谓拥有,皆非束缚。所有过往,皆为序章。
展开
-
Android SDK开发,解决生成aar本地嵌套及远程依赖嵌套
文章目录需求及问题描述解决方案一 、Apply plugin二、Embed dependencies三、打包aar1.打包成本地aar包2.上传maven1.gradle.properties中添加:2.lib module build.gradle中添加:需求及问题描述需求:把lib module打成一个包 提供给第三方,依赖方式可以是maven依赖也可以是本地aar文件。问题:我的lib module中引用了第三方的本地库和一些远程库,正常的打包方式无法把这些嵌套的库打进去。解决方案借助第三.原创 2021-12-13 16:59:57 · 3670 阅读 · 0 评论 -
Android Studio 3.5 打Jar包
task makeJar(type:org.gradle.api.tasks.bundling.Jar) { baseName = "leia" appendix = "media" version = "2.0.0" classifier = "release" //删除存在的// delete 'build/libs/leia-media-1...原创 2020-04-21 15:06:35 · 1414 阅读 · 1 评论 -
recyclerView 列表类控件卡顿优化
1、使用ConstraintLayout减少布局层级。2、可以的话,设置RecyclerView布局等高,然后设置recyclerView.setHasFixedSize(true)这样可以避免每次绘制Item时,不再重新计算Item高度。3、根据需求修改RecyclerView默认的绘制缓存选项 recyclerView.setItemViewCacheSize(20); recycle...转载 2019-11-30 12:40:45 · 1063 阅读 · 0 评论 -
把 LiveData 用于事件传递那些坑
1、为什么要把 LiveData 当作事件传递用利用观察者模式打造的事件总线的优点不必多说(当然也有很多缺点),如 EventBus 和 RxBus 用的好的话能起到很好的解耦作用,使整个程序架构更加清晰,不至于到处传递各种 Callback。但是他们都缺少了对 View 层(Activity、Fragment 等)的生命周期的感知能力,需要在生命周期结束时手动解除观察者,手动管理生命周期十...转载 2019-11-30 11:39:59 · 2498 阅读 · 0 评论 -
libqrencode生成二维码并保存成bmp图片打开失败问题解决方案
c++ 使用qrencode库生成二维码的方法如下:#include "qrencode.h"#define QT_OUT_FILE "/root/Application/QRBMP/qrpay.bmp"// Prescaler (number of pixels in bmp file for each QRCode pixel, on each dimension)#defin...原创 2019-11-15 14:30:41 · 727 阅读 · 1 评论 -
Android面试总结系列之面试技巧
文章目录面试官:Android动画用过吗?我:用过一些简单的。面试官:那就简单讲一下吧!!!本篇文章将根据我这些年面试和被面试的经验来总结面试技巧,给各位迷茫的同学做个参考。我认为面试问题一般都可以被分两大类:一类是公司项目中会用到的而且用的比较深入的。一类就是不用或者用的比较浅。那有的同学会疑惑,为什么项目里不用的还要问呢?有一下几个可能的动机:1.是个必备的知识点...原创 2018-12-20 23:16:13 · 1073 阅读 · 0 评论 -
Android面试系列之动画
文章目录1.面试技巧2.面试问题1.面试技巧关于面试技巧请移步本系列第一篇文章:2.面试问题自己近几年也面试过一些中级Android开发者,根据面试和被面试的经验来讲,面试时关于动画方面的问题听得最多的是:面试官:Android动画用过吗?我:用过一些简单的。面试官:那就简单讲一下吧!!!面试问题一般都可以分两大类,一类是公司项目中会用到的而且用的比较深入的,另一类就是不用或...原创 2018-12-20 23:16:48 · 987 阅读 · 0 评论 -
Android状态栏一体化/沉浸/透明兼容vivo、小米等
一.首先来看一下实现后的效果:例一:例二:二.上干货为了有些同学需要应急,直接给出使用步骤首先拷贝两个工具类到项目中:NewStatusBarUtilOldStatusBarUtil分别支持4.4和4.4以上版本。其次在BaseActivity中添加一个方法:protected void process() { // 华为,OPPO机型在StatusBarUt...原创 2018-12-10 13:27:07 · 2949 阅读 · 3 评论 -
Cookie、Session、Token那点事儿(原创)
本文已独家授权 鸿洋( hongyangAndroid ) 公众号发布!前言:新公司项目中使用到了Cookie,在各大Android技术讨论群向前辈们取经讨论这cookie、session、token这仨哥们的时候,很多开发者说法不一各抒已见,所以是时候回顾下http基础以及总结开发经验了。本文重在科普分析Cookie、Session、Token的基本概念和应用场景;Okhttp框架下对Coo...转载 2018-12-21 18:06:46 · 396 阅读 · 0 评论 -
基于Jenkins的Android持续集成(自动化打包)
文章目录一、环境要求二、环境检查三、Jenkins配置四、创建打包任务五、build.gradle六、开始打包一、环境要求本帖针对的是Windows环境,Linux或其他系统请另寻他贴。具体只讲述Jenkins配置以及整个流程的实现。JDK(或JRE)及Java环境变量配置,我用的是JDK8。这个配置方法做开发的都懂,不懂的网上帖子也很多,不赘述。现成Android项目及SVN(GIT...转载 2018-12-20 22:29:22 · 511 阅读 · 0 评论 -
Android-X5WebView封装(Cookie管理、进度监听、适配8.1系统等策略)
本文已独家授权 郭霖 ( guolin_blog ) 公众号发布!撸完了上一篇Android-X5WebView简介 之后,有些大兄弟可能觉得不过瘾呐,说你那样的都是很基础的啊(的确很基础),项目里面用起来不爽啊(的确很不爽),不能让我直接CV啊(的确不能直接复制粘贴)等等,那这篇文章的目标就是怎么样快速封装X5WebView,如何有效的同步以及管理Cookie,如何使用IntentServi...转载 2018-12-19 19:30:20 · 905 阅读 · 0 评论 -
Android-X5WebView详细集成步骤
本文意在了解掌握并快速集成腾讯X5系统内核,更好的提高Android与H5在应用上的渲染交互效果;X5web内核下该如何有效的管理cookie;X5webview下的ndk基本配置说明;X5webview常见问题等等。Android-X5WebView封装(含Cookie管理、进度监听、适配8.1系统等策略)详情请点击!文章使用到的官方资料:腾讯浏览服务腾讯浏览服务技术指南腾讯...转载 2018-12-19 19:29:19 · 1098 阅读 · 0 评论 -
Android的WebView控件载入网页显示速度慢的究极解决方案
Android客户端中混搭HTML页面,会出现虽然HTML内容载入完成,标题也正常显示,但是整个网页需要等到近5秒(甚至更多)时间才会显示出来。研究了很久,搜遍了国外很多网站,也看过PhoneGap的代码,一直无解。 一般人堆WebView的加速,都是建议先用webView.getSettings().setBlockNetworkImage(true); 将图片下载阻塞...转载 2018-12-19 19:26:58 · 3258 阅读 · 0 评论 -
Android组件化框架设计与实践
转载自:Android组件化框架设计与实践在目前移动互联网时代,每个 APP 就是流量入口,与过去 PC Web 浏览器时代不同的是,APP 的体验与迭代速度影响着用户的粘性,这同时也对从事移动开发人员提出更高要求,进而移动端框架也层出不穷。服务端与移动端对比上图显示的是传统的服务端架构和客户端 App 架构对比。传统的服务端架构中最底下是一个 OS,一般是 Linux,最上面服务...转载 2018-12-06 22:07:24 · 386 阅读 · 0 评论 -
WebView性能、体验分析与优化
在App开发中,内嵌WebView始终占有着一席之地。它能以较低的成本实现Android、iOS和Web的复用,也可以冠冕堂皇的突破苹果对热更新的封锁。 然而便利性的同时,WebView的性能体验却备受质疑,导致很多客户端中需要动态更新等页面时不得不采用其他方案。 以发展的眼光来看,功能的动态加载以及三端的融合将会是大趋势。 那么如何克服WebView固有的问题呢? ...转载 2018-12-19 18:48:36 · 771 阅读 · 0 评论 -
Retrofit 请求失败问题填坑记录
本文主要列举一些遇到的retrofit 请求的问题,作为记录。文章目录问题一:@Field parameters can only be used with form encoding问题二:@Body parameters cannot be used with form or multi-part encoding.问题一:@Field parameters can only be us...原创 2018-12-28 16:27:25 · 4506 阅读 · 1 评论 -
Retrofit 2.0全部注解及注意事项
文章目录一.导图二.请求方法类1.除@HTTP外其他7个:2.@HTTP三.参数类1.Headers2.Header3.Body4.Field5.FieldMap6.Part7.PartMap8.Path9.Query10.QueryMap11.Url注意事项:四.标记类1.FormUrlEncoded2.Multipart3.Streaming一.导图Retrofit 共22个注解,根据功...原创 2018-12-28 16:27:55 · 790 阅读 · 0 评论 -
Android屏幕适配全攻略(最权威的官方适配指导)
转载自:http://www.cocoachina.com/android/20151030/13971.htmlAndroid屏幕适配出现的原因在我们学习如何进行屏幕适配之前,我们需要先了解下为什么Android需要进行屏幕适配。由于Android系统的开放性,任何用户、开发者、OEM厂商、运营商都可以对Android进行定制,修改成他们想要的样子。但是这种“碎片化”到底...转载 2018-12-30 12:24:23 · 385 阅读 · 0 评论 -
vr全景图加载并播放
原图:vr加载后自动播放效果:原创 2019-08-21 11:40:19 · 2872 阅读 · 0 评论 -
Android 系统签名打包方法
方式一 命令行生成(推荐):此方式不需要配置,步骤也不多。在应用程序manifest.xml文件根节点中加入属性:Android:sharedUserId=“android.uid.system”;在android系统目录build/target/product/security/拷贝系统签名文件:platform.x509.pem、platform.pk8;在out/host...原创 2019-04-22 14:38:33 · 3934 阅读 · 0 评论 -
android系统应用静默安装及静默自启动
现在很多app为了更好的用户体验纷纷开始使用静默安装,这段时间公司也刚好有一个这样的新项目,是电视盒子的tv项目,系统是定制的,可以使用系统签名,所以我们这里的内容只是有系统签名权限的app的静默安装和安装后自己启动自己。下面是测试通过的方案实现代码:工具类:public class ApkController { /** * 描述: 安装 */ publi...原创 2019-04-22 14:19:46 · 4166 阅读 · 0 评论 -
ButterKnife的采坑记录
最近使用mvvm的开发模式,但是又蛋疼于dataBinding的编译问题,终于决定着手使用ButterKnife,小白总免不了遇到坑,小坑怡情,大坑伤神。今天开始持续更新填坑记录。坑1.ButterKnife.bind(this, view)更新不了控件具体现象描述:由于fragment中不能使用ButterKnife.bind(this)方法,所以只能改用ButterKnife.bind(t...原创 2019-04-03 09:40:15 · 248 阅读 · 0 评论 -
[转载]Android Realm详解
作者:郭霖原文作者:带心情去旅行原文地址:http://www.jianshu.com/u/769d3d3a9d4b介绍Realm 是一个 MVCC (多版本并发控制)数据库,由 Y Combinator 公司在2014年7月发布一款支持运行在手机、平板和可穿戴设备上的嵌入式数据库,目标是取代SQLite。Realm 本质上是一个嵌入式数据库,他并不是基于 SQLite 所构建的。...转载 2019-02-15 17:25:04 · 316 阅读 · 0 评论 -
android 面试准备内容
文章目录一、基础复习:二、进阶篇三、JD整理AI相关:一、基础复习:android基础二、进阶篇android进阶三、JD整理framwork模块(AMS/PMS/WMS/ART)有基本理解精通oc或kotlin性能调优经验或稳定性问题解决经验、内存优化、工具检测内存泄漏,解决系统崩溃(ANR,crash),常见的兼容性问题。前端经验RN weex flutter经验了解J...原创 2019-02-15 10:48:54 · 418 阅读 · 0 评论 -
android进阶
进阶想必也有很多朋友对阿里推出的X-Deep Learning提不起特别大的兴致。之前就有腾讯发布的开源框架QMUI_Android ,最近又有很热门的谷歌开源的flutter框架喊着大家去学,难免会产生疲劳感。尤其是现在行业不景气,很多初级开发甚至都很难找到工作。其实现在的社会,技术分工越来越细,越细就意味着大部分企业(小作坊除外)需要专精的人才(最好是精通一门通多门)。你会发现身边脱颖而出...原创 2019-02-15 10:46:55 · 1098 阅读 · 1 评论 -
OnNewIntent四种启动模式下的调用时机
Activity启动模式、Intent Flags、taskAffinity、task和back stack总结1.singleInstance模式:第一次进入:onCreate onStart在栈顶再次进入: onNewIntent不在栈顶再次进入:onNewIntent onRestart onStart按home键再次进入:onRestart onStart按返回键:onRest...原创 2019-01-18 15:30:08 · 553 阅读 · 0 评论 -
Android网络连接判断与处理
转载自:https://www.cnblogs.com/qingblog/archive/2012/07/19/2598983.html获取网络信息需要在AndroidManifest.xml文件中加入相应的权限。<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 1)...转载 2018-12-30 12:47:37 · 584 阅读 · 0 评论 -
android敏捷开发介绍与实现
说起敏捷开发,大家或多或少会有些印象。而在android上的敏捷开发可能还并未普及。博主将与大家共同讨论一起交流android上的敏捷开发、框架搭建等知识。本博将通过 讲解敏捷开发概念-&gt;敏捷开发架构思想-&gt;开发环境搭建-&gt;项目源码敏捷开发构建、拆分 等逐步带您走进android敏捷开发的世界。原创 2018-12-06 18:50:22 · 971 阅读 · 0 评论 -
build.gradle动态配置依赖版本
项目根目录中创建一个gradle文件,名字随便起,也可以不创建直接写在项目的build.gradle文件中。1.在gradle文件中定义变量并赋值:例如我在项目根目录创建globalconfig.gradle文件,内容如下:ext {//签名文件目录 storageFilePath = [ releaseSignStoreFile: '/Users/***/tools/k...原创 2018-12-06 17:53:53 · 4299 阅读 · 0 评论 -
Android API Level对照表
API Level 最初Android版本 Linux内核版本 首次发布日期 后续Android版本 28 9 4.9 2018-07-02(Beta 3) - 27 8.1 4.10 2017-12-05 无 26 8.0 4.10 2017-08-21 无 25 7.1 ...原创 2018-12-13 15:46:48 · 907 阅读 · 1 评论 -
Android ImageView 的scaleType 属性图解
ImageView 是 Android 中最常用的控件之一,而在使用ImageView时,必不可少的会使用到它的scaleType属性。该属性指定了你想让ImageView如何显示图片,包括是否进行缩放、等比缩放、缩放后展示位置等。Android 提供了八种scaleType的属性值,每种都对应了一种展示方式,下面就对每一种scaleType属性值进行图文解释。首先,这个是测试放到ImageV...转载 2018-10-31 19:19:09 · 4511 阅读 · 1 评论 -
android UI设计图片和文字尺寸px对应dp、sp值换算
屏幕尺寸:指屏幕的对角线长度,单位是英寸,1英寸等于2.54厘米,常见尺寸有2.4,2.8,3.5,3.7,4.2,5.0,5.5,6.0等。屏幕分辨率:指在纵横向上的像素点数,单位是px,1px为一个像素点,一般格式为纵向像素*横向像素,如1960*1080。屏幕像素密度:相同尺寸情况下,分辨率越高,屏幕越清晰,即屏幕像素密度越大。屏幕像素密度指每英寸上面的像素点个数,单位是dpi,是“...原创 2018-10-24 19:01:20 · 7386 阅读 · 0 评论 -
AndroidStudio导入项目一直卡在Building gradle project info最快速解决方案
AndroidStudio导入项目一直卡在Building gradle project info,实际上是因为你导入的这个项目使用的gradle与你已经拥有的gradle版本不一致,导致需要下载该项目需要的gradle版本,不知是被墙了还是什么原因,反正就是会一直卡住,直至下载完成(如果能下载完成的话,233)网上也提供了方法,就是去官网下载gradle的版本,然后放到本地,我就不在这里介绍...原创 2018-10-26 21:08:13 · 216 阅读 · 0 评论 -
Android使用selector点击按钮文字变色
需求:开发中按钮按压时字体颜色变为灰色 松开后恢复实现:1.res下新建color文件夹(放drawable文件夹下也可),创建文件btn_text_color.xml:<selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_focused="...原创 2018-10-23 11:39:48 · 3459 阅读 · 0 评论 -
Weex项目环境搭建
一、安装node.js点击链接 http://nodejs.cn/download/ 选择你需要安装的版本(windows ,mac,linux 3种系统的版本),下载你需要的版本 点击安装包,下一步,下一步,安装完成即可。安装node,然后npm也集成在里面,等于同时下载了node和npm; 查看版本号: 由于npm服务器在国外,访问速度较慢,可使用淘宝的npm源: npm i...原创 2018-09-14 17:34:25 · 337 阅读 · 0 评论 -
npm及npm在weex中的使用
npm概念npm(node package manager)node的包管理工具这些被重用的代码被称为包(packages),有时候也被称为模块(modules)。一个包通常包含了一个或者多个文件,同时也包含了一个定义了这个包元信息的文件”package.json”。在一个应用中,例如网站会依赖成百上千个包,这些包一般来说都比较小。通常情况下开发者创建一个包用于解决一个特定的问题。益处...原创 2018-09-14 15:18:34 · 688 阅读 · 0 评论 -
weex第一个项目的创建运行
首先上一张创建的操作过程图: 在weex相关环境搭建好以后,使用命令:”weex create 目录”开始创建项目,创建过程中会提供一系列选择项由自己做出选择,途中create命令以下的问号开头的即为选择题目,后面紧跟的绿色字体为我选择的结果。 前三个选择是编辑项目名、项目描述和作者,一目了然,使用默认值回车即可:下面解释其他选项的意义: 1. select weex web ren...原创 2018-09-14 12:32:34 · 2378 阅读 · 0 评论 -
Android7.0Nougat 新功能和特性
Android 7.0 Nougat 提供新功能以提升性能、生产效率和安全性,主要新增了下面的新特性和优化:一、新的Notification Android N 添加了很多新的notifications API,进行了又一次的设计,引入了新的风格。模板更新: 开发人员将能够充分利用新模板,仅仅需进行少量的代码调整。 消息样式自己定义: 新增自己定义样式、消息回复、消息分组等更加灵活。 ...原创 2018-09-14 09:45:39 · 384 阅读 · 0 评论 -
android ANR、traces文件获取及实例分析
android ANR、traces文件获取及实例分析前段时间项目开发中遇到anr的问题,时间紧急,一时间又难以定位,通过临时方法解决后,最近有时间对ANR的问题做一次份细的解决方案,本文中的解决方案是通过综合其他博客后自己再通过实例验证后得出的可行方案,读者如遇类似问题可做参考,欢迎评论交流。1.ANR的模拟此次写了一个demo模拟长时间IO造成ANR的情况,然后对logcat内容和...原创 2018-09-13 13:42:08 · 21659 阅读 · 2 评论 -
Android的消息循环机制 Looper Handler类分析
Looper类说明 Looper 类用来为一个线程跑一个消息循环。 线程在默认情况下是没有消息循环与之关联的,Thread类在run()方法中的内容执行完之后就退出了,即线程做完自己的工作之后就结束了,没有循环的概念。 调用Looper类的 prepare() 方法可以为当前线程创建一个消息循环,调用loop() 方法使之处理信息,直到循环结束。 大多数和消息循环的交互是...原创 2018-08-28 11:42:10 · 190 阅读 · 0 评论