摘要: 链接: https://pan.baidu.com/s/1skPxdNJ 密码: 7iwp 使用方法:安装完主程序后,将dmg包里charles.jar拖至/Applications/Charles.app/Contents/Java/里替换原来的charles.jar 然后打开程序,点击上面的菜单阅读全文
posted @ 2016-10-01 17:01 Kai.Ma 阅读(1623) 评论(0) 编辑
摘要: 先简单介绍下5.0版的变化。5.0最大的特色是调用简单,采用了链式语法,形如:new ShareAction(context).setPlatform(share_media) .withText(content).withTitle(title) .withMedia(...阅读全文
posted @ 2016-01-16 14:24 Kai.Ma 阅读(5255) 评论(0) 编辑
摘要: 总结一下:1.Touch事件分发中只有两个主角:ViewGroup和View。ViewGroup包含onInterceptTouchEvent、dispatchTouchEvent、onTouchEvent三个相关事件。View包含dispatchTouchEvent、onTouchEvent两个相...阅读全文
posted @ 2015-09-07 13:42 Kai.Ma 阅读(96) 评论(0) 编辑
摘要: 流行的思路如下【2015-11-20更新】:1.让Service杀不死。Service的onStartCommand返回START_STICKY,同时onDestroy里面调用startService启动自身。2.让Service从后台变成前置。在Android 2.0以前有效,借助setForeg...阅读全文
posted @ 2015-09-06 17:56 Kai.Ma 阅读(1223) 评论(0) 编辑
摘要: 上周五和朋友聊天谈到个蛇形数组的java实现办法,命题是:假设一个二维数组宽w高h,从1开始蛇形输出。int[][] numberMatric = new int[w][h];当时午睡过头脑袋不清醒,愣是没有好的思路。后来晚上研究了下,发现一种比较简单的实现办法。核心思路是:找准移动方向,按移动顺序...阅读全文
posted @ 2015-08-31 19:38 Kai.Ma 阅读(983) 评论(0) 编辑
摘要: 一般使用Android Studio生成javadoc会有两个问题:空指针异常文档乱码解决办法如下:第1个问题:Tools --> Generate JavaDoc -->打开对话框活,在"Other command line arguments"输入 “-bootclasspath /Users/...阅读全文
posted @ 2015-04-21 15:45 Kai.Ma 阅读(604) 评论(0) 编辑
摘要: 今天研究指令嵌套时,发现子指令的link函数先于父指令的link函数执行。这样和预想的顺序不一样。也就是说,如果子指令的某个scope变量依赖于父指令传来的参数时,可能一直是undefinded比如:APP.directive("子指令", function () { return { ...阅读全文
posted @ 2015-03-29 18:09 Kai.Ma 阅读(1347) 评论(0) 编辑
摘要: 导言stackoverflow上有一个人问了一个问题:如果我有jQuery背景,我应该如何切换到AngularJS的思维模式?有一个回复非常经典,获得了两千多票。为了让国内开发者也能领略到其中的核心思想,现把这个问题和答案翻译出来供大家参考。Question假设我已经熟悉了如何使用jQuery来开发...阅读全文
posted @ 2015-01-22 21:17 Kai.Ma 阅读(184) 评论(0) 编辑
摘要: 首先,为了避免滑动冲突,我们要继承ViewFlow,重写onInterceptTouchEvent 1 public class MyViewFlow extends ViewFlow { 2 private ViewPager mPager; 3 4 public MyViewF...阅读全文
posted @ 2014-09-29 03:07 Kai.Ma 阅读(5595) 评论(0) 编辑
摘要: 老网民肯定还记得263聊天室、QQ聊天室,火爆的聊天场景,充满好奇的人们聚一个虚拟的小房间里畅所欲言,不断地发出欢声笑语。那时候,有一些特别可爱的AI聊天机器人,简单的回复你几句,给你讲几个笑话,发几张美女,贴几条新闻……虽然简单,但那么真诚、可爱,像一个初生的小宝宝,给我们留下无限纯真和美好的...阅读全文
posted @ 2014-07-08 17:20 Kai.Ma 阅读(3438) 评论(0) 编辑
摘要: 我们直接在公司项目中使用,效果良好!分享出脚本代码,希望对Android研发的同学有帮助。提示,初学python,开发环境是Sublime Text 2,直接Ctrl+B的,其他环境下没调试过。应该差不多^^##################################################环境: win + python 2.7#作者:马波#邮箱:mabo02@baidu.com#部门:hao123-无线#说明:首次使用时lint分析会耗几分钟,请耐心等待。# 使用前先clean工程,确保工程bin下重新生成dex,# 以便lint进行分析。如果要lint...阅读全文
posted @ 2014-03-08 19:29 Kai.Ma 阅读(1919) 评论(2) 编辑
摘要: 最近项目定制版越来越多,维护,同步代码非常费事。以前的思路如下图:以前的svn目录结构如下图:这样问题有2个:若在一个定制包中修复了其他定制包也有的bug,同步更新其他包的代码时,非常费劲+机械,并且很容易发生人工失误。若某个定制包换人维护,新接手的人,交接时费时,而且新接手的人容易忘记关键点,对定制版在主线版基础上有哪些改动记不住。由此,我研究了一下SVN的Create/Apply patch功能,由于svn的patch格式文件可以忠实记录文件变动,所以上面说的第2个问题迎刃而解,同时新方案只有一个主线版,修复任何共有的bug只需要在主线版中修复即可,省却同步代码的工作,问题1也可以解决。所阅读全文
posted @ 2014-01-11 18:14 Kai.Ma 阅读(8896) 评论(4) 编辑
摘要: 我们平时设置图片的时候,几乎都忘记回收老的(背景)图片,比如:TextView.setBackgroundDrawable()TextView.setBackgroundResource()ImageView.setImageDrawable()ImageView.setImageResource()ImageView.setImageBitmap()这样造成内存浪费,积少成多,整个软件可能浪费不少内存。如果记得优化,整个软件的内存占用会有10%~20%的下降。// 获得ImageView当前显示的图片Bitmap bitmap1 = ((BitmapDrawable) imageView.g阅读全文
posted @ 2013-12-30 12:21 Kai.Ma 阅读(2637) 评论(0) 编辑
摘要: try { mViewPager.postDelayed(new Runnable() { @Override public void run() { getCurrentPage().render(false); } }, 500); } catch (Exception e) { ...阅读全文
posted @ 2013-07-09 13:24 Kai.Ma 阅读(10425) 评论(0) 编辑
摘要: 这个东西有顾名思义是碎片,和之前的Activity对应。坑1:一般情况都会想当然的以为进程被杀掉之后,Fragment也会被回收其实,Fragment有自己的生命周期,有自己的管理器(FragmentManager),也即:包含Fragment的进程被干掉,Fragment不一定会被回收,而是由FragmentManager来决定生死。Q:如何验证上面的说法?A:如果是一般正常的流程“打开-关闭”软件,Fragment的确被回收了。但是如果使用“腾讯手机管家”之类的内存清理工具,清理内存(实际上是杀死进程),会发现Fragment没有被回收,一直缓存着。验证方法如下:缓存Fragment的Ta阅读全文
posted @ 2013-07-08 17:35 Kai.Ma 阅读(6872) 评论(2) 编辑
摘要: PopupWindow在4.0之前的版本有个系统级别的BUG,必须借助一段自定义的fix代码来修复。其中mPopPm就是PopupWindow实例。java.lang.NullPointerExceptionat android.widget.PopupWindow$1.onScrollChangedif (Build.VERSION.SDK_INT < Build.VERSION_CODES.ICE_CREAM_SANDWICH) { try { final Field fAnchor = PopupWindow.class.getDecl...阅读全文
posted @ 2013-06-28 15:05 Kai.Ma 阅读(5015) 评论(0) 编辑
摘要: 常见问题:app卸载后,桌面快捷方式仍然存在app安装后,桌面有重复的快捷方式解法(转):Android Launcher开发之自动添加桌面快捷方式及实际开发中常见问题的解决方案参考文章:http://blog.csdn.net/t12x3456/article/details/7857925阅读全文
posted @ 2013-04-03 12:18 Kai.Ma 阅读(219) 评论(0) 编辑
摘要: 自己的机器 android 2.3,刷的小米系统,曾经执行成功过一次,前后传的版本号也正确,后来死活不执行,确实是调用的getWritableDatabase(),看了Android源码,也没发现异常。百思不得其解!换了公司的一台测试机,又可以。由此暂时断定这个onUpgrade不靠谱,自己写了一套升级sqlite数据库的逻辑。在assets下做一个update.sql文件,然后读取文件,一行行的执行sql;若升级成功,在库里面写个标记。注意:update.sql里面,一个完整的操作,其包含的句子需要合并成一行。代码如下(只是思路,不可直接copy使用): private void up...阅读全文
posted @ 2013-02-25 16:41 Kai.Ma 阅读(2700) 评论(0) 编辑
摘要: 实践了下Moscrif,就是那个javascript开发native app的解决方案。与PhoneGap等方案不同的是,PhoneGap是糅合html的解决方案,不是真正的Native APP(性能打折扣);而Moscrif则是利用javascript开发Native APP,也即用javascript代替Object C/Java去开发Native APP。目前支持Android,IOS和Bada(三星的OS),比较有意思。代码的确是javascript,导出的demo游戏apk在自己的手机上跑得很欢。可免费使用,开源。前端转手机开发的有福了。目前还在体验中。参考:http://www.i阅读全文
posted @ 2012-11-26 14:22 Kai.Ma 阅读(2571) 评论(2) 编辑
摘要: /*** 背景是因为发现同事拼JS字符串喜欢用模板(String.replace),没错,用模板增加了可读性,* 但是相较于高效的Array.push然后Array.join("")拼接字符串而言,用replace有个性能问题。* 以循环1000次举例,ie下差距很大,ff下的Array.push也要快将近一倍。可运行下面的demo:* String.replace VS Array.push */var testType=2;//1=String.replace or 2=Array.push var s="",sArr=[],n=1000;//u c阅读全文
posted @ 2012-10-25 16:38 Kai.Ma 阅读(2020) 评论(0) 编辑