首页
学习
活动
专区
工具
TVP
发布

Android开发经验

专栏作者
42
文章
44328
阅读量
26
订阅数
补间动画-translate
使用步骤: 1.在res/anim/下定义动画文件,例如取名为translate.xml。
coderZhen
2019-01-28
6800
flutter混合开发运行报错:VM snapshot must be valid. /Check failed: vm. Must be able to initialize the VM.
找遍了google和flutter github的issue, 目前发现的可行解决办法如下: 1.在flutter module的build文件的android节点添加:
coderZhen
2019-01-23
2.1K2
AsyncTask执行流程总览
用户调用task.execute() => onPreExecute()=> 交给线程池sDefaultExecutor调度=> mFuture 配合 mWorker开启子线程=> doInBackground()=> 交给内部单例InternalHandler处理返回结果并返回到主线程=> 根据Message处理onProgressUpdate()或onPostExecute()
coderZhen
2019-01-03
6000
flutter-Mac系统下安装之export PATH=`pwd`/flutter/bin:$PATH
在执行export PATH=pwd/flutter/bin:$PATH命令的时候踩了一会儿坑,按教程执行完之后,在命令行输入 flutter doctor之后仍然会提示找不到flutter这个命令。
coderZhen
2019-01-03
1.8K0
一步一步实现Android低功耗蓝牙(BLE)基本开发
项目需要接入两个低功耗蓝牙设备(BLE),并且与之交互(读/写)数据,所以看了下官方对于这块儿的介绍,总结了一下BLE开发中一些需要注意的地方以及基本流程。
coderZhen
2018-10-08
1.8K0
mac下SourceTree出现错误:fatal: could not read Username for 'xxx': Device not configured
之前一直都是好的,但是用Android Studio提交代码是可以的。回想了一下,可能是因为捣鼓mac自带的钥匙串,导致SourceTree使用其中存储的密码的时候出现了问题。 花了些时间Google了一把,尝试了几种解决办法,最后终于在stackoverflow上成功找到了一种解决办法。
coderZhen
2018-10-08
3.3K0
Android自定义View-记录一个简单却又常见的效果实现
代码 简单列下主要代码,完整代码地址放在了文字末尾。 1.为了更加灵活,我这里提供了很多属性用于用户自己来设置:
coderZhen
2018-10-08
6730
Volley从源码梳理主要工作流程简记
重点来了。 这里开启了一个缓存调度线程CacheDispatcher,一个网络请求调度线程NetworkDispatcher。
coderZhen
2018-10-08
4480
ScrollView里面基于某个View弹出PopupWindow,PopupWindow不会跟着View滚动?
遇到这样一个需求:根布局为ScrollView,内部有一个TextView,叫它A,需要在A正上方弹出一个PopupWindow。 初看其实很简单,根据A的位置和大小,算出PopupWindow的位置,调用showAtLocation方法即可实现在A正上方弹出。 代码如下: showPopAlongView(textView); private void showPopAlongView(View v) { View view = View.inflate(this, R.layout.
coderZhen
2018-07-04
1.3K0
webview调用android代码
在开发的时候经常会用到webview,必然会涉及到webview与客户端的交互,比如在网页上进行某个操作后,需要在app上显示一个提示,提示内容由网页提供,这时候就需要js来调用客户端的java代码了。 webview提供了一个方法addJavascriptInterface()来满足这种需求。 具体步骤: 客户端定义一个类,并定义需要的方法,例如: public class WebAppInterface { Context mContext; /** * Instantiate
coderZhen
2018-06-28
7310
集成butterknife最新版本8.6.0
最近刚完成一个版本的需求,有空闲时间,准备好好整理下手上的项目。因为公司项目开始的时间比较早,很多新的开源框架都没用上(新开的项目用到了),开发效率有时候确实比较低,所以打算逐步为手上的老项目引进一些成熟的框架,来提升开发效率(当然也想偷个懒,目前我一个人负责android项目,开发效率高了我也就不用加班了哈哈)。 首先要摆脱的就是无穷无尽的findViewById了,解决方案有很多,最终选择了著名的Butter Knife,起初在网上搜了一些教材,发现大部分都是老版本的集成方法,目前Butter Knif
coderZhen
2018-06-28
6340
从源码梳理Retrofit网络请求过程
通过定义一个接口,在方法上加入相关注解,Retrofit框架就可以把它解析成对应的网络请求,使用非常方便,记录下从源码角度看这个过程是怎么实现的。 一 Retrofit的引入 在Android Studio中引入Retrofit非常方便,目标最新版本是2.3,在app-build文件-dependencies节点下加入以下依赖即可: compile 'com.squareup.retrofit2:retrofit:2.3.0' compile 'com.squareup.retrofit2:
coderZhen
2018-06-28
5220
MVVM项目实战之路-搭建一个登录界面
最近有一个新任务,给公司内部开发一个App,需求初始很简单,刚好之前一直在看MVVM这种开发模式,所以决定用Data Binding Library以及ViewModel等实现这种模式,因为代码和之前
coderZhen
2018-06-28
2.1K0
升级Android支持库版本遇到的两个问题
公司项目之前support Library 版本比较混乱,各moudle有好几个版本的v7包和v4包,而且版本还比较低,今天抽时间统一了下支持库以及buildToolsVersion等的版本,但是遇到了两个问题,记录一下。 1. 升级buildToolsVersion至26 最新的buildToolsVersion已经到26了,照之前方式,直接在build文件中将buildToolsVersion后的引用版本改为26.0.2,然后同步,发现编不过去,提示: [failed to find build too
coderZhen
2018-06-28
6050
Android Studio3.0多渠道打包遇到的问题
最近升级到了Android Studio3.0,在给测试打包的时候突然出错,错误如下: Error:Cannot choose between the following configurations of project :UMUpdate: - debugApiElements - debugRuntimeElements - releaseApiElements - releaseRuntimeElements All of them match the consu
coderZhen
2018-06-28
1.4K0
java.lang.OutOfMemoryError: unable to create new native thread
最新项目有版本更新,在打渠道包的时候老是刚打了一两个包的时候,就会抛出一个异常,导致打包失败: java.lang.OutOfMemoryError: unable to create new native thread 由字面意思也可以知道是内存溢出了,在网上查了一下,说是创建了太多的线程。但是同样环境下,我们另外一个项目用相同的方式打包就没有出现这个问题,而且另外一个项目比出现问题的项目还要复杂一些,stackoverflow有人遇到了同样的问题: http://stackoverflow.com/q
coderZhen
2018-06-28
6800
ExpandableStickyListHeadersListView遇到的一个问题
最近一直忙着版本更新,记录一下中间遇到的一些问题。 ExpandableStickyListHeadersListView这个开源库主要是实现列表分组的,常见的需求用它还是不错的,项目中也有用到这个控件,一直没有什么问题,但是,这期需求测试在用华为nexus p6做测试的时候,发现了一个奇怪的问题: 在列表快速滑动的时候,点击返回键离开当前界面,app会崩溃,崩溃日志如下: Attempt to invoke virtual method 'void android.view.View.dispatchWi
coderZhen
2018-06-28
5180
es6中箭头函数学习的一个记录
公司要开小程序的项目了,领导让提前熟悉下es6的语法,学习中遇到箭头函数相关的一段代码,起初对输出结果不是很理解,重新看了箭头函数的相关概念后才有一点儿明白。 如下代码: function Timer() { this.s1 = 0; this.s2 = 0; // 箭头函数 setInterval(() => this.s1++, 1000); // 普通函数 setInterval(function () { this.s2++; }, 1000); } var t
coderZhen
2018-06-28
6360
让你的App有声音
之前写过一篇文章,当时的需求是播放英文,最后使用的是Androi自带的TextToSpeech类来实现(http://blog.csdn.net/weixin_38251977/article/details/69944088),虽然播放英文效果还行,但是对中文的支持不是很好。最近新项目中又遇到一个语音的需求,这次是中英文都有,各种对比之后,选择了百度语音离在线融合SDK,播放效果非常好,关键是免费。趁着有空,记录下集成步骤,抽成一个demo,下次有需要的时候可以直接套用。 一 前提步骤 首先,需要在百
coderZhen
2018-06-28
3240
Butter Knife用法总结
早就听过Butter Knife这个神器,公司最近新开了一个项目,用到了这个框架,但也只是简单使用自动绑定控件,昨天抽时间看了下官网,发现这个框架还可以做其他很多的工作,来提高开发效率,总结一下常用用法。 一 导入 dependencies { compile 'com.jakewharton:butterknife:8.5.1' annotationProcessor 'com.jakewharton:butterknife-compiler:8.5.1' } 目前最新版为8.5.1 二 用法
coderZhen
2018-06-28
5390
点击加载更多
社区活动
Python精品学习库
代码在线跑,知识轻松学
热点技术征文第五期
新风口Sora来袭,普通人该如何把握机会?
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·干货材料·成员作品·最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档