老五开发Android
从个人业余项目入手,介绍项目的各大功能点及实现
IT-老五
这个作者很懒,什么都没留下…
展开
-
11.【小萌伴Android】语音找手机及其实现
上面一篇讲了短信找手机及其实现,今天继续介绍下“找手机”功能的另一种实现:语音找手机【小萌伴Android】语音找手机及其实现“短信找手机”功能需要另一台手机的辅助(发送短信)才能实现,而“语音找手机”功能则不需要其他手机辅助,只需要APP服务运行在后台,然后大声喊预设的指令即可。即实现了“大喊一声,它会回答”,从此粗心大意、手机乱丢不用怕...1 原理APP启动一个服...原创 2019-04-29 23:12:00 · 259 阅读 · 0 评论 -
10.【小萌伴Android】短信找手机功能及其实现
短信找手机有两种方式,短信找手机(声音/灯光)与短信找手机(手机定位),分别对应两种不同的情景:一种是在某个地方手机乱放找不到,另一种是手机丢失(比如掉了、被偷之类的)…注意:该功能需要另一台手机的辅助,才能找到手机(后面即将介绍的语音找手机则不需要另一台手机辅助)1 短信找手机(声音/灯光)短信找手机(声音/灯光)是确定手机在某个区域后的,定位手机的准确位置,比如在家里手机乱丢找不...原创 2019-06-18 09:33:03 · 967 阅读 · 0 评论 -
9.【小萌伴Android】机器人陪聊--语音功能及其实现
前几篇都是介绍一些辅助功能,如新闻、H5游戏、段子趣图、原生小游戏,手电筒应用等,现在再来聊聊机器人陪聊主体功能--语音功能及其实现。【小萌伴】语音【小萌伴】中的语音功能使用的是百度语音sdk,包含语音输入、语音播放、语音转文字、文字转语音、声音变换、离线语音语义识别、语音唤醒等。其中功能的主要可分为三部分:语音识别、语音合成、语音唤醒。(我用的sdk比较老了,下面代码也许已经...原创 2019-04-09 14:52:00 · 760 阅读 · 0 评论 -
8.【小萌伴Android】手电筒功能及其实现
前面三篇介绍了【小萌伴】百宝箱中的三款原生小游戏,这里说说百宝箱中另一功能模块--实用小应用...【小萌伴】手电筒.gif小应用主要包含了四个功能:今日历史、新闻、手电筒和找手机;今日历史和新闻模块之前已经介绍过(参考:3.【小萌伴Android】新闻/H5游戏模块及广告过滤),本篇只介绍手电筒功能及其实现,后续再聊找手机功能。原理手电筒功能其实是利用手机照相机的闪光灯(L...原创 2019-04-07 06:52:00 · 548 阅读 · 0 评论 -
7.【小萌伴Android】原生小游戏及其实现(三)飞机
前面介绍了【小萌伴】App中的原生小游戏《2048》和《防御小鸟》,这里来说说另一个原生小游戏《打飞机》…Sprite与前面两个小游戏一样,《打飞机》的源码同样不多,但因为其元素较前两个游戏较多,所以拆分了很多实体类,其中包含一个精灵类Sprite,它是其他所有实体类(包含各种飞机,子弹,爆炸效果,奖励物品等)的基类,定义了含以下属性,并包含draw,move,destroy等方法: ...原创 2019-04-06 21:42:18 · 311 阅读 · 0 评论 -
6.【小萌伴Android】原生小游戏及其实现(二)小鸟
前面介绍了《2048》的实现,现在来说说《防御小鸟》…从上图可以看出,《防御小鸟》有两种玩法,一种是利用管道将小鸟永久的挡在左边,另一种是利用管道将小鸟压死。这两种玩法与正版的《像素小鸟》有点不一样,《像素小鸟》是控制小鸟的飞行,而《防御小鸟》是控制管道的闭合;刚开始时难道比较低,但是随着小鸟不断增多,难度也是相当大的。该游戏源码主要包含了一个Bird类,和一个GameView,然后还...原创 2019-04-06 21:41:26 · 405 阅读 · 0 评论 -
5.【小萌伴Android】原生小游戏及其实现(一)2048
如果聊天感觉有点累,在【小萌伴】中还可以玩一些小游戏,包括H5游戏和原生游戏,之前介绍了H5小游戏(4399),现在来说说原生小游戏。作为一个休闲娱乐类App的辅助模块,我对小游戏的看法是应当包含一些当前流行的、代码量小易于开发的轻量级游戏;于是,我选择了当时流行的《2048》、《小鸟》、《飞机》、《贪吃蛇》四款游戏(后来《贪吃蛇》移除了)。一、 2048该游戏代码上主要包含两部分,显...原创 2019-04-06 21:40:48 · 738 阅读 · 0 评论 -
4.【小萌伴Android】段子趣图模块及其实现
之前分享了机器人陪聊和新闻游戏及去广告,现在来聊聊【小萌伴】的"段子与趣图"部分…这一模块经过的改版最多,最初是利用聚合数据中的“笑话”api进行开发,后来改为使用umeng开源的社区sdk进行开发、并自定义了整套社区UI(包含登录、主页、发帖、浏览、板块、板块主页、收藏、转载、热门、关注、评论、点赞等),再之后umeng社区停止维护并下线、改用其他开源数据api取代、并自定义了UI显示(...原创 2019-04-06 21:40:26 · 246 阅读 · 0 评论 -
3.【小萌伴Android】新闻/H5游戏模块及广告过滤
在完成主体聊天机器人功能后,拓展了新闻资讯及小游戏模块。精力有限,新闻列表用原生,具体内容则用h5嵌入第三方站点,而游戏则分为两部分,有几个原生小游戏(2048、防御小鸟、打飞机、贪吃蛇),更多的是爬了4399的h5小游戏。xmb.itlao5.com既然用到了第三方H5新闻及小游戏,肯定需要用到webview,这里仅做了一些基本处理;另外用到的是第三方的网页,需要去掉一些广告或第...原创 2019-03-19 13:50:00 · 300 阅读 · 0 评论 -
1.【小萌伴Android】思量再三,终于鼓起勇气开源~
从12年开始,业余时间陆续也开发了几款App并上架到各大应用市场,可惜没做出啥成绩,也就赚了一些广告费…之前的有几款App现在连源码都找不到了,只留下最后一款《小萌伴》因为放在OsChina上,所以源码一直都在,同时,这也是我持续更新时间最长的一款App!从老婆怀孕起到现在孩子三岁多了,四年多了,因为开发到中期的时候知道自己要做爹了,娃的小名准备叫萌萌(所以,请叫我萌爸或萌爹⁽˙³˙⁾(๑•́...原创 2019-03-14 23:10:00 · 185 阅读 · 0 评论 -
Android Bug记录--Error: Webview js调用报错Error calling method on NPObject
其他项目组的项目需要一个简单h5项目,需要帮忙弄个android壳,就一个页面,只不过需要播放声音,没有其他任何js交互,以后也不会有什么js拓展。于是就简单写了个webview,加了js回调,并封装了声音播放类,在js回调中使用。public class Javascript { @JavascriptInterface public void voice(final...原创 2018-11-16 18:51:52 · 700 阅读 · 0 评论 -
ImageSpan图片不能居中的问题
使用ImageSpan的童鞋应该都会遇到这样一个困惑,图片不能居中显示,ImageSpan中只有ImageSpan.ALIGN_BASELINE与ImageSpan.ALIGN_BOTTOM两个选项,关键是即使设置了这个参数,在不同手机上可能出现的情况还不同,同一段代码,可能有的居上,有的居下…其实这个很容易解决,继承ImageSpan重写getSize()和draw()方法即可@Overri...原创 2018-11-16 18:46:01 · 892 阅读 · 0 评论 -
Android关于声音播放(MediaPlayer)--如何改变播放速率
喜欢折腾,最近想开发一款可以变速的音乐播放器,先做下技术调研。百度&谷歌了一下,如果不做底层定制,整个mp3文件播放在java层可以实现的方法主要是MediaPlayer。而且,在Android 6.0+(23+)MediaPlayer可以通过setSpeed来改变播放速率在代码中,我们需要:// 设置音乐播放速度 // IT老五(简书ThinkinLiu) http://itl...原创 2018-11-15 09:01:09 · 2824 阅读 · 0 评论 -
Android--四大组件之BroadCastReceiver(生命周期、实现原理及使用等)
####1. BroadCastReceiver是什么?####2. 广播类型######1). 有序广播######2). 无序广播####3. 生命周期####4. 实现原理####5. 使用方法####6. 权限问题(安全性)####7. LocalBroadcast####8. 注意事项原文:简书ThinkinLiu 博客: IT老五#BroadCastReceiv...原创 2018-11-15 08:58:37 · 182 阅读 · 1 评论 -
Android--四大组件之Service
####1. Service是什么?####2. 启动方式######1). 差异######2). 关联####3. 生命周期######1). startService######2). bindService####4.本地服务与远程服务####5.IntentService####6.重启机制#Service是什么?作为Android四大组件之一,Service是...原创 2018-11-15 08:57:45 · 135 阅读 · 0 评论 -
Android Bug记录--WebView UserAgent
错误日志:java.lang.IllegalStateException: Calling View methods on another thread than the UI thread. at com.android.webview.chromium.WebViewChromium.createThreadException(WebViewChromium.java:67) at co...原创 2018-11-15 08:56:45 · 177 阅读 · 2 评论 -
Android--四大组件之Activity(一)
####1. Activity是什么?####2. 生命周期######1). Activity跳转######2). 从后台启动######3). 横竖屏切换####3. 启动模式######1). 任务栈######2). laucherMode######3). Intent的Flag######4). startActivityForResult#Activity是...原创 2018-11-15 08:56:01 · 136 阅读 · 0 评论 -
Android开发--Kotlin初体验,java转Kotlin代码及异常排除
Kotlin火了一段时间了,近段关于java版权的官司谷歌也输了。趁着最近有时间,了解下Kotlin。为了更方便查看与java开发的区别,决定拿一个小项目直接改成Kotlin代码。看别人博客的时候发现AS自带有Java转Kotlin的工具,于是,我们可以很方便的使用快捷键 Ctrl + shift + alt + k 实现整个工程的java代码转换。.java文件都转成了.kt文件。但是...原创 2018-11-15 08:55:11 · 351 阅读 · 0 评论 -
Android开发(java基础)HashMap存储结构及扩容
之前有写过ArrayList与LinkedList,分别用到了数组与链表的结构,下面来看看HashMap,了解其实现及扩容机制。#构造函数HashMap有四个构造函数,其中比较有代表性的是下面这个public HashMap(int initialCapacity, float loadFactor) { if (initialCapacity < 0) thr...原创 2018-11-14 22:38:26 · 132 阅读 · 0 评论 -
Android开发(java基础)ArrayList、LinkedList与for循环
之前写了篇性能相关的文章:Android开发: 关于性能需要考虑的,都是一些文字描述,纯理论文;现在补充点实际的,以便更深刻的了解代码/数据结构/算法等对性能的影响…就从使用较多的list和for循环开始…#代码示例程序员写作惯例,先看代码import java.util.ArrayList;import java.util.Iterator;import java.util.Linke...原创 2018-11-14 22:35:46 · 246 阅读 · 0 评论 -
类支付宝密码输入框NumberEditText(简单粗暴的定制方式)
因为项目需要,设计了一个下图样的验证码输入框(ps:个人认为还不如直接一个EditText,用户友好度可能更好,何况这页面99.9%的用户不会使用,但是没办法,别人才是专业的设计师)。 效果其实界面很简单,一个弹出框口,中间几个简单控件。也就验证码输入框需要自定义一下。首先看到,觉得继承个EditText或者View绘制下,然后监听下输入框情况就可以了。但是,本人比较懒,能用系统提...原创 2018-11-14 22:33:05 · 201 阅读 · 1 评论 -
为什么你的app会出现卡顿?Android开发: 关于性能需要考虑的
刚做Android开发时,只管完成任务,将需求完成,以能完成一款界面酷炫的app为自豪。然而,随着代码量的增加,越来越意识到,一款成功的移动端产品,光有酷炫的外衣还不够,还需要在各方面都优秀。试想,拿着一款app,第一眼看去,页面静态效果完美,但试着去操作,点击按钮半天不见反馈,滑动时伴着卡顿效果,甚至时不时弹出个“应用程序无响应”,用户有何感想;又或者,装上app后,原本充一次电可以用一天,...原创 2018-11-14 22:30:49 · 274 阅读 · 0 评论 -
Android进程保活(黑白手段让APP活下去)
凡是做过几年Android开发的,都不能不面对进程保活这一问题。特别是这两年,面对谷歌,国内定制ROM,安全软件等多方围剿的情况下,app在后台保活的难度越来越大,可以说包括QQ、微信在内的所有app,都无法做到一直运行于后台。因此,进程保活一直都是Android开发的一大难题。Android进程保活工作包含两部分:1、如何尽量保持进程不被杀死2、当进程被杀死时,如何重新启动如何尽...原创 2018-11-14 22:29:07 · 332 阅读 · 4 评论