Android
邵磊
这个作者很懒,什么都没留下…
展开
-
Mac下android studio安装genymotion所遇到的坑
注册问题:genymotion下载需要注册,因为在后面下载各机型镜像时需要登录。第一个坑就出现了:国内无法打开官网的注册界面,所以需要科学上网。而且还需要验证邮件。http://www.genymotion.net/安装问题:genymotion安装完成后,还需要自己下载virtualbox安装,最后在android studio 下载genymotion插件。登录问题:Invalid reply原创 2016-07-03 23:36:19 · 8244 阅读 · 1 评论 -
利用递归算法、堆栈打造一个android可擦除思维导图
前言说来也奇怪,高中学代码的时候,整天在刷一些noip的题目,钻研各种算法,什么递归、分治、动态规划。而真正工作后,发现很少用不到,直到这个页面才让我用到算法。其实这个页面,是我前年写的,但是一直偷懒,不想整理发布,去年的时候,在csdn上发布过一些,但是没怎么认真写,今天乘着周末认真给大家讲讲,希望能勾起大家对算法的回忆。 项目需求是一个思维导图、每个节点的个数以及数据由服务端返回,这就需要每一原创 2017-05-08 00:33:00 · 563 阅读 · 0 评论 -
利用递归算法和堆栈实现android思维导图大纲图的动态绘制
刚拿到ui效果的时候,第一感觉很炫,但实现起来会很复杂,晚上在床上的时候才想到的实现思路。先看效果图正常模式的图:擦除模式的图两种模式随意交替功能分析首先每个按钮出现个数是不固定的,由服务端返回,当然层数也是不固定的,这样一来就只能用递归来实现,我的一位做ios的同事没有用递归,硬是写了7层循环,最多支持7层。下面是我的分析过程:1.下一个按钮=当前按钮.onclick事件。 2.在正常模式下,每原创 2016-06-22 13:43:01 · 3316 阅读 · 25 评论 -
Genymotion中INSTALL_FAILED_CPU_ABI_INCOMPATIBLE
我在网上搜了下,有个帖子说下载个文件就好了,结果我下了没用,后来在官方论坛里发现其实加一句话就好了。 application installation failed这个错误。 在app的build.gradle中 android{}内加入 splits { abi { enable true reset()原创 2017-05-07 14:55:18 · 321 阅读 · 0 评论 -
对今日头条android端的一次简单分析(上)
前言闲来无事,正看着百度新闻,突然灵感一闪,何不研究下一款新闻app,那就从今日头条开始吧。第一步1.1、轮廓分析这里使用压缩软件打开,主要看lib目录及assets目录。 1.2、lib目录lib目录主要是放一些库或jar包,打开后发现,只有一个armeabi目录,我们知道x86/x86_64/armeabi-v7a/arm64-v8a设备都支持armeabi架构的.so文件,所以一个目录也是可原创 2017-05-11 22:14:16 · 6849 阅读 · 0 评论 -
android studio adb无法启动的一个异常
报错 adb.exe,start-server’ failed – run manually if necessary 1:55:13 error: could not install smartsocket listener 百度查询后得知和genymotion冲突,打开genymotion的设置->ADB里面,设置本地的sdk目录就可以了原创 2017-01-01 12:06:02 · 578 阅读 · 0 评论 -
关于android中listview-adapter的viewholder及settag的探究
引言今天无意中翻看项目代码,发现有一个list-adapter没有使用viewholder也没有使用settag、gettag,心里很紧张,这个页面使用频率很高,如果oom可不好。奇怪,为什么没有测试和我反映呢?分析问题项目里使用了网络上的一个ViewFindUtils类,里面有一个hold方法和一个find方法,我的listview中只调了find方法,find方法里只是一个findviewbyi原创 2016-12-30 17:56:54 · 1429 阅读 · 0 评论 -
和android热修复AndFix技术亲密接触
每次回家都偷懒,不想整理一下,今天周末,强迫自己整理下,内容一定很全。前言随着app版本升级迭代,难免有些bug会出现,用户升级新版的代价较高,如果能给app打热补丁,热更新掉app的bug,岂不更好。Andfixandfix是阿里的一个热修复框架,更新至今,已经相对完善了,可以满足我们日常需求。它有很多优点,比如: 1.热修复免重启app 2.更新包小 3.支持360加固(很多blog上说不原创 2016-11-19 15:40:03 · 1548 阅读 · 11 评论 -
正则表达式出现的一个错误java.lang.IllegalStateException: No successful match so far
背景:今天在写一个正则的时候,非常奇怪,Matcher的groupcount=2,但是当我去获取group(1)的时候,提示java.lang.IllegalStateException: No successful match so far。然后我写了个java代码片段测试,果然也是报错,排除了是android的问题。我猜是转义没处理好,我的正则里有“[图片]”这个标签,[符号我已经转义为\[,但原创 2016-09-07 14:02:17 · 7398 阅读 · 0 评论 -
android中webservice请求的异步回调封装(一)
背景其实从我本人来讲,我是抵制这个东西的webservice+ksoap请求效率低,不稳定,各种缺点。但是呢,公司还有一些老的项目在维护,为节约点时间,封装了一个简单的异步回调。第一个版本没有用单例和建造者模式,随便写了一下,有时间再优化。先看效果吧WebserviceUtil w=new WebserviceUtil();//实例化webservice+ksoap工具类w.setMethodNa原创 2016-09-02 15:24:33 · 1221 阅读 · 1 评论 -
android studio 无线wifi调试手机debug免数据线
背景最近公司数据线紧缺,我的usb线被拔来拔去,今天居然罢工了,懒得去申请,突然想到以前看过无线debug调试,于是来研究一番。android studio直接下载插件adb wifi安装后重启(先插数据线)Tools → android → ADB WIFI → ADB USB to WIFI当屏幕显示“adb connect xxx.xxx.xxx.xxx:5555””,然后拔掉数据线,直接点运原创 2016-09-09 15:06:04 · 2871 阅读 · 0 评论 -
Error running app: Instant Run requires 'Tools | Android | Enable ADB integration' to be enabled.
android studio adb出问题解决方法Tools -> Adnroid -> Enable ADB Integration原创 2016-08-08 16:23:41 · 652 阅读 · 0 评论 -
Android Studio编译占cpu99%、100%、编译超慢、卡断问题分析
有朋友问我android studio编译为什么那么慢,其实看看编译日志就能发现问题了。先看编译日志日志内容如下:To run dex in process, the Gradle daemon needs a larger heap. It currently has approximately 910 MB. For faster builds, increase the maximum h原创 2016-08-05 09:48:52 · 6501 阅读 · 0 评论 -
Android Studio app安装后首次启动白屏很久的bug之坑
起源:最近发现一个项目安装包只有5M,但是每次安装后都会冷白屏5-10秒,我很郁闷,到底什么什么鬼导致的呢?先介绍下版本:android studio 2.12,gradele 2.1.2dependencies { classpath 'com.android.tools.build:gradle:2.1.2'}难道是启动页加载问题?立马检查启动页,去掉所有页面处理逻辑,首次启动白屏很原创 2016-08-01 12:46:49 · 8152 阅读 · 4 评论 -
android仿超级课程表页面自定义view的实现(方法一)
写在前面:最近想对一个课表界面进行重构和增加功能,第一种方法是用自定义view做的,虽然最终放弃了这种方法,转向方法二,但是方法一一些思路还是值得梳理下。效果图如下:自定义view如下:public class MURP_School_Schedule_Timetable_View extends View implements OnTouchListener, OnGestureListe原创 2016-08-01 12:04:45 · 1551 阅读 · 0 评论 -
安卓自定义绘制波浪球的控件WaterWaveView
效果图如下功能实现首先自定义一个WaterWaveView,然后开一个多线程,每隔100ms调用WaterWaveView里的setPercent(percent);方法public class MURP_School_Schedule_WaterWaveView extends FrameLayout { private float mPercent; private Paint原创 2016-06-22 14:31:09 · 1050 阅读 · 0 评论 -
android成长树不规则布局的自适应
效果图如下:设计思路首先最底层是一张只有灰色圆圈和线条的背景图,上面每个学期都是一个button,第一个版本采用的是为每个分辨率的手机建立了文件夹对应x,y的比例坐标,当然这个是工具生成的。时间不长变发现了一个大坑,原来安卓分辨率远比想象的要多,而且安卓5.0的手机很多都是虚拟返回键一栏,这使得app获得的分辨率会变化导致自适应困难,所以后来改为按比例相对布局。每个学期都有颗星星,星星在绘制的时候要原创 2016-06-22 14:00:15 · 1209 阅读 · 0 评论 -
Android动态标签选项列表效果的实现
很多时候我们,我们会用到动态标签,而安卓并未提供一个直接方法,可以让动态标签换行,经过参照网上代码,做出以下效果。java代码 int size = testName.length; // 添加Button的个数 LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(LinearLa原创 2016-06-22 12:04:38 · 1909 阅读 · 1 评论 -
Android利用gradle同时编译多包(测试环境地址、生产环境地址)
前言小公司,项目有2套环境:一个测试环境,一个生产环境。测试会找客户端要测试环境包或生产环境包,我觉得嫌烦,于是,同时编译。分析首先,我们的项目中,生产环境和测试环境仅为string.xml中的两个地址不通,其他代码都是相同的。 这个需求和多渠道包打包很像,几乎完全参照。具体代码先在build.gradle(Module)中加入 home、real,两句话android { //……省原创 2017-07-10 17:11:42 · 1446 阅读 · 0 评论