学习笔记
南郭竽
这个作者很懒,什么都没留下…
展开
-
android 自定义控件中的测量和布局
上一篇:android onMeasure 实现上一篇中其实对测量讲解的比较清楚了,对布局没有说。不过对于 viewGroup而言,测量完成了,也就意味着着,知道怎么布局了。其实知道了怎么测量和布局就可以实现很多沙雕的控件了。比如流布局。当然了,如果想提供很方便的调用方式,还需要搞一些便捷的自定义属性才行。这里展示一下,通过测量和布局实现的沙雕布局。通过效果图可以看出来,这就是流布局了...原创 2018-12-23 02:59:37 · 394 阅读 · 0 评论 -
android : marqueeText 实战
先看效果,再看实现。好吧,由于视频转 gif ,导致看起来特别的快。实际上比较慢的。不过从视频上面也能看的出来,二者的速度是差不多的。上面一个是 自定义的,最下面的是使用 原生TextView设置跑马灯效果来做的。为什么要自定义这个东西呢,因为 need。 看末尾,滚动一遍之后,要在末尾加上...这样的。说一下实现思路:本身是一个 FrameLayout,里面至少有一个TextView用于显示内容的。如果需要滚动显示,就一共有两个TextView在里面。内容是放在第一个TextView里面的原创 2020-07-07 01:51:37 · 472 阅读 · 0 评论 -
Android Studio 的初使用
强大的谷歌已经发布了Android Studio 很久了,貌似都一两年了。不过对于我,好像是今年才频繁的听说这个。而且要命的是,现在eclipse已经被强大的谷歌给废弃了,不再更新ADT了。也许是基于这个原因,或者是AS确实更优秀,反正eclipse+ADT开发Android可能确实要成为历史了。不过,不幸的是,我发现我的笔记本跑不起来AS,修改一行代码,AS需要反应差不多一分钟才能进行下一次操原创 2016-01-05 17:50:30 · 549 阅读 · 0 评论 -
云之讯语音通话Demo
马上来。原创 2015-12-06 13:59:09 · 1840 阅读 · 1 评论 -
网络电话语音通话的android实现
现在很多第三方开发平台封装了一些强大的功能,比如消息推送,第三方分享,短信验证码,以及IM即时通讯,语音聊天,视频聊天等功能。今天就和大家分享一下如何利用第三方开放平台实现网络电话的功能,也就是语音聊天。这里是基于云之讯开放平台来实现的。之前很多人都跟我说过,这些使用第三方开放平台来实现的功能,代码写起来都非常的简单。不过我现在明白了,这里说的简单,是相对完全是自己去开发而言的。如果就使用云之原创 2015-12-06 14:47:39 · 12193 阅读 · 2 评论 -
短信验证的实现(基于云之讯短信验证SDK)
短信验证用途:进行身份验证,验证手机号码是本人的短信验证逻辑流程:发送请求给服务器,根据服务器的返回Json/xml获取 返回码,创建时间。根据返回码判断是否正确,正确会收到短信。不正确就收不到短信。创建时间是用来做验证码的验证的失效时间。根据收到的短信验证码与本地生成的验证码进行比对,如果相同就验证通过。如果不同就验证失败,如果超时也验证失败。如果去掉3,也可以。那么就直接根据返回码去原创 2015-12-22 12:33:51 · 4759 阅读 · 2 评论 -
DuckAudio-基于ListView的Item进度刷新
Android app中有些需求是刷新ListView中的Item的进度条。比如下载列表这样子的就需要同时刷新不同Item的下载进度。于是基于这样的一个需求,我做了一个比较完整的Demo专门用于刷新ListView的Item的进度的。当然,这个Demo与下载是无关的。不过也是刷新Item的进度的。项目介绍功能:扫描手机中的所有歌曲文件,添加到ListView中显示,根据当前选择的操作模式[原创 2015-12-24 00:10:37 · 1247 阅读 · 0 评论 -
一个有趣的问题:怎么在JS的数组中去除重复元素?(JAVA实现吧..)
怎么在JS的数组中去除重复元素?(JAVA实现吧..)原创 2016-03-02 11:21:59 · 1636 阅读 · 0 评论 -
MySql的学习记录-持续更新
背景:mysql已经正确安装!1. 启动mysql服务器: net start mysql2. 登录到mysql的服务器((可以是本地的服务器)): mysql -uroot -p -P3306 -h127.0.0.1 root //输入密码3. 查看当前所有的存在mysql服务器的数据库: SHOW DATABASES;4. 进入某一个数据库: USE test;5. 查看当原创 2016-02-24 23:52:45 · 754 阅读 · 0 评论 -
百度地图Android SDK的使用
唉,百度地图百度地图里面有各种高大上的功能提供,我都不会。这两天花时间看了一下,准备搞一个高大上的app出来。结果发现我想多了。然后,只搞出了一个定位的功能,以及在地图上显示我的位置。……OK,开始介绍一下这两个功能的实现 首先 ,要去百度开发者中心下载百度地图SDK的lib包,然后放到自己的工程的lib包中。然后,安照官网提供的代码,一步一步复制下来,log里面就可以打印出当前位置了。原创 2016-01-03 16:54:42 · 567 阅读 · 0 评论 -
android 系统短信数据库的查询与删除
对系统短信数据库进行操作首先,需要如下权限 <uses-permission android:name="android.permission.READ_SMS" /><uses-permission android:name="android.permission.WRITE_SMS" />其次操作系统数据库,需要使用到系统应用提供的内容提供者,利用内容提供者进行系统数据库的增删改查的操作原创 2015-12-27 18:03:15 · 8028 阅读 · 2 评论 -
云之讯官方测试Demo音频版源码阅读(编辑)
* 由于最近项目中貌似需要做这一块,于是就去读了一下云之讯官方测试Demo的音频版的源码[Android音频版](http://www.ucpaas.com/product_service/download)。* 其实这个Demo并不是什么高大上的代码,也没有很多生涩难懂的代码在里面,相反,读起来还是很轻松的。* 不过,虽然代码结构清晰,但是里面的广播实在太多。如果不去理一理,确实不太好明白到原创 2015-12-02 15:20:04 · 2141 阅读 · 2 评论 -
云之讯官方测试Demo音频版源码阅读
由于最近项目中貌似需要做这一块,于是就去读了一下云之讯官方测试Demo的音频版的源码Android音频版。其实这个Demo并不是什么高大上的代码,也没有很多生涩难懂的代码在里面,相反,读起来还是很轻松的。不过,虽然代码结构清晰,但是里面的广播实在太多。如果不去理一理,确实不太好明白到底流程是怎样的。不过,好在Demo中还提供了一个Activity的结构图,也是辅助大家去做进一步的理解。基于这些原创 2015-12-02 15:04:54 · 2255 阅读 · 0 评论 -
Android 短信验证的再次实现
Android 短信验证Android 短信验证手机号一般是,让你发送一条短信,然后再发送验证码进行比对,来确认。但是,这样有一个问题就是,我完全可以填一个其他的手机号,然后让其他手机收到验证码之后告诉我,我再发送验证码进行验证,也就是说,这种方式不能保证当前手机号码并不是当前手机的。不过,有一个方式可以避免这样的情况出现,就是在收到验证码短信之后,去判断短信数据库中有没有这条短信的信息。如果原创 2015-12-28 20:23:33 · 691 阅读 · 0 评论 -
android 蓝牙开发
android蓝牙开发,貌似很高大上的样子。记得每次面试,基本都会被问到这个,每次都不知道该如何回答呀。不过说实在的,还是有些难度的。毕竟是socket通信了。面试四大必问:{蓝牙,IM,百度地图,支付}。不过,貌似,只要地图才会被常用到,其他的三个,不是做这些模块,根本不会用到啊...愚蠢的面试官,~_~原创 2015-11-22 00:52:42 · 966 阅读 · 0 评论 -
读Android蓝牙通信源码
我说的读android蓝牙通信源码并不是说,读google官方api,那个我也看了一下,里面全是英文倒不说,英文好的,直接无视掉。关键是代码写的我实在难以理解。当然,这也和我的阅读源码的能力有关联的。不过,幸好我在网上找到了一份开源的蓝牙通信的代码是menghnhhuan写的。大家想看他的源码可以直接戳进去就可以直接看到。这真的是一份少见的,写的非常清晰的代码。为什么这么说呢?因为大家做and原创 2015-11-21 23:32:06 · 1340 阅读 · 1 评论 -
Android:程序锁功能的简单实现
如我们所知,现在有很多牛逼的安全软件都带有程序锁的功能。当然,名字可能不一样,有的叫隐私保护,有的叫软件锁。等等。但是这种名字其实都是表达一种意思,就是可以给你手机里面的app加以保护。只有你给你的App设置了程序锁,这样每次在你进入这个App的时候就要先输入密码,然后才能进入。程序锁功能并不是什么高大上的技术,也不是很难的技术点。于是,受到灰驹的启发,我就写了一个简单的,UI比较丑陋的程序锁的小原创 2015-10-08 00:50:38 · 9608 阅读 · 2 评论 -
Android:使用云服务Bomb服务简单案例
我承认我是被慕课网的一个介绍所吸引过去的,介绍就是:作为一个移动平台开发者,你是否曾因为不会搭建服务端程序而苦恼,是否因为服务器端性能优化、功能实现而四处学习?现在,有了Android移动后端服务(Baas),所有苦恼即将不在,数据存储、消息推送、数据分析等种种功能,Baas已全部帮你搞定,心动不如行动,快快学起来吧!。我一看,这Bmob到底是什么牛逼的技术啊,赶紧去膜拜了一下。不过还好,如同其他原创 2015-10-07 14:34:57 · 6865 阅读 · 0 评论 -
ViewPager自动轮播时触摸的方便解决
ViewPager做自动轮播相信大家都会的。思路五花八门的,之前看到郭霖的博客,他就完全不使用ViewPager,去自己自定义一个View来做。但是,我当然做不到这样。我的实现方式就是: 1.在ViewPager第一次显示的时候(onCreate/onCreateView中)就用Handler去执行一个延时任务,延时假设2秒,然后去选中下一页。 mHandler.postDelayed(n原创 2016-03-06 22:36:37 · 1353 阅读 · 0 评论 -
面试趣闻,随记
之前面试遇到一个面试官,问了我一些Android基础的知识,然后就出了两个算法题目给我: 第一个,怎么使用Java中String类的split()方法。 这个就不多说了,当时我也磕磕碰碰的写出来了,写出来之后,一直让我优化,搞得我大为恼火,以为是故意折腾人的。然后是一道纯粹的算法题目:有A-Z共26个字母,A是一种组合,B是一种组合,AB也是一种组合,ABC也是,XDC也是一种组合,以此类推。原创 2016-02-22 23:37:54 · 798 阅读 · 0 评论 -
我看 kotlin
kotlin 真的出来好久了,谷歌也是一直在不要命的宣传。不过覆盖率应该还是不到100%。我对于kotlin是一直有关注。几乎是谷歌谷歌开始大力宣传的时候,我就开始关注了。那时候已经有博客开始科普这门语言了。不过,我是尝试了几次,最终都放弃了。原因有二:第一,当时工作上用不上;第二:实在不喜欢这门语言。kotlin似乎是一个大杂烩,里面包含很多语言的特性。而且相对复杂。里面的关键字就特别多。...原创 2019-07-18 23:35:03 · 170 阅读 · 0 评论 -
android WorkManger 使用攻略
文章目录`WorkManager` 使用攻略导入依赖库最简单的`WorkerManager`添加一些配置选项监听`Worker`的执行情况关联多个任务一起执行取消一个未完成的任务执行周期性任务执行“特殊”任务自定义`WorkManager`初始化参数WorkManager 使用攻略WorkManager是 Android JetPack 的一部分。是用于执行后台任务的。导入依赖库对应的库:...原创 2019-05-24 16:23:13 · 1948 阅读 · 0 评论 -
Java 注解实战
Java 中提供了注解的功能。涉及到的包有:java.lang.annotation,java.lang.reflect 。也就是说,实际上包含两点:注解和反射。注解q:为什么需要反射?因为仅仅自定义注解的话,几乎没有任何作用,除非是基于第三方框架。而不依赖任何第三方框架的话,就必须使用到反射来解析自定义的注解。(似乎也有其他的方式来解析)这里就使用反射的方式来解析。关于自...原创 2018-12-09 21:34:50 · 703 阅读 · 0 评论 -
java 代理模式
代理模式听起来特别唬人,如果你不知道的话。几个月前,我去面试。面试官出来。(我一看,哇,这人是程序员?吊儿郎当的样子)然后他就开始问我一些问题。让我一直记住的一个问题是:静态代理模式与装饰模式有什么区别?我当然没有回答上来了。我TM根本不知道代理模式要怎么弄,只是知道有这么个东西。以上是前言。不过实话说,代理模式是我一直想了解但是一直没有了解的东西。然后在我脑中就有一个印象:这玩...原创 2018-12-13 23:04:11 · 135 阅读 · 0 评论 -
git: 记一次push的错误,印象深刻
**错误日志:packet_write_wait: Connection to 52.74.223.119 port 22: Broken pipe fatal: The remote end hung up unexpectedly**之前的操作步骤(导致错误的操作步骤)本地创建了一个 git仓库,通过 git init命令创建的。然后里面添加了几个文本文件,这些文件加起来大小不超...原创 2018-05-25 07:45:30 · 3732 阅读 · 2 评论 -
android recyclerView adapter 的 itemType的使用
RecyclerView出来已经很久了。我对于之的使用,也仅限于当成ListVieworGridView的使用。最近项目中有一个需求刚好需要用到多种item的展示。我之前使用RecyclerView 的adapter 全部使用的是hongyang/base-adapter。非常的方便。而且也提供多种item的展示的功能。但是………我并没有找到正确的使用方式。于是这回就用到了原生的RecyclerV原创 2016-12-30 21:10:36 · 5576 阅读 · 2 评论 -
Android Studio 中使用Lambda
如你所知,在Android开发中现在也是可以使用 Lambda表达式了。不过是因为gradle-retrolambda的存在。尽管gradle-retrolambda的官方文档已经将使用方式讲解的很清楚了。但是很不幸的是,就是有很多比较笨的人,比如我,就没明白怎么去使用。因为我貌似是按照官网的步骤一步一步来的,但是,就是不行。好了,经过我半天的摸索,我知道怎么去在 android studio中原创 2016-04-10 19:46:44 · 1749 阅读 · 0 评论 -
java: 多进程简易操作
java用了这么久,貌似没有使用过多进程。貌似一般的需求里面也不涉及这个方面。但是,有时候确实有这种奇怪的需求,比如xxx.于是,通过翻阅api文档,以及参考往上博客,写了一个简单的多进程程序。package com.pythoncat.java.process;import java.io.BufferedReader;import java.io.IOException;import jav原创 2017-08-11 22:19:40 · 2811 阅读 · 0 评论 -
android:字符串转码的使用
去年开发了一个便签的app。然后一直在不定期迭代。大体来说,就是将用户输入存到db中,后续可以解析db,将数据二次展示 当时是在存db之前,先将数据转成json格式了。 至于为何要将数据转成json格式,一时不好解释,需要一些上下文,这里不做解释。然而问题出现了,之前一直没有发现的一个问题。就是如果用户输入的数据中包含双引号""这样的东西,就会导致解析失败。程序直接崩溃了。原因很简单,比如原创 2017-06-08 23:09:31 · 2062 阅读 · 0 评论 -
android:圆形进度条的实现
这个需求,在我进上上家公司,做第一个项目的时候就遇到了。当时百度了一下,找到了夏安明童鞋的圆形进度条的实现。然后copy过去,很愉快地就解决了需求。很happy的样子。前几天,忽然想弄一下圆形进度条,于是,就弄了一个。记录在此,纪念一下。为了方便使用和扩展,我也弄了几个自定义属性 可以自定义进度条颜色可以自定义进度条边框颜色可以自定义进度条宽度可以自定义有无边框可以自定义文字颜色可以原创 2017-01-24 16:48:21 · 3159 阅读 · 2 评论 -
android:多module时,多 Application编译失败的问题解决
如果在app module中新建一个类public class BaseApplication extends Application {...},然后在lib所在module中也新建一个类public class LibApplication extends Application {...}并且在各自的AndroidManifest.xml中配置了对应的android:name=".XXXA原创 2017-03-02 17:23:50 · 4296 阅读 · 1 评论 -
android: 侧滑菜单的实现(ViewDragHelper)
关于侧滑效果,github上面已经有了很多成型的框架。可以非常方便的集成使用。不过,实际项目中,可能有些需求,框架并没有帮我们完成。所以,有时候,需要自己动手实现这样的效果。根据泡网,hongyang,还有Android群英传,以及网上各位大婶的博客文章。我写了一个简单的侧滑效果。记录在此,主要是加深印象。详情在代码注释中/** * Created on 2017/1/24. */pub原创 2017-01-24 16:29:42 · 555 阅读 · 0 评论 -
android: 你真的需要'singleTask'吗
关于Activity的四种启动模式,网上已经有无数的指导教程了。我之前也是看到有一个singleTask模式,感觉这种模式很好,”单任务”,应该适合所有的Activity。 一直也没有出现什么问题。直到最近: …… 我写了一个 app,里面只有两个 Activity.启动模式全部设置的是 android:launchMode="singleTask".这个app,也一直没有出现任何问题,直到….原创 2017-02-06 10:51:35 · 1609 阅读 · 0 评论 -
android sqlite 完全用replace替代 insert 和 update 操作
android 中 sqlite数据库相信大家或多或少都使用过。我也一样。之前只知道 insert,update,query,delete并不知道有replace不清楚replace()的,可以看下这个来自博客园,和这个。这两篇都讲了replace()方法的使用。但是,并不是很详细。特别是,他们都没有强调,如果要使用replace,一定要有一个primary key,并且,该字段,是唯一区分到底原创 2016-12-29 20:44:25 · 12459 阅读 · 6 评论 -
Android aidl 看这一篇就够了
从一个绑定服务开始,到实现两个app之间的IPC通信。你想要了解的一切关于aidl,关于远程服务,关于多进程。都在这里了。你想要能直接跑起来的demo?你想要细致的讲解?没有文章,只能给个链接了。传送门原创 2016-09-23 02:44:25 · 1426 阅读 · 0 评论 -
Android 混淆代码(eclipse篇)
代码混淆的确是一个操蛋的问题,不过也没有想象中那么操蛋。首先说明一下混淆的意义:1.增加反编译的难度;2.压缩apk的大小。下面我来简单介绍一下,eclipse中怎么去混淆代码,到AndroidStudio应该也是一样的?步骤如下1.首先将project.properties的11行前面的#号去掉,将改行替换成proguard.config=proguard-android.txt2.去原创 2016-02-29 00:34:17 · 10571 阅读 · 1 评论 -
Android小Demo:高仿微信5.3界面
近日看慕课讲解的一个高仿微信5.2.1主界面及消息提醒的案例,感觉也不是很难,就顺便也写了一下。涉及知识点如下: 怎样在代码中动态设置一个控件,必然ImageView 的宽度。怎样获取屏幕宽度。github开源控件BadgeView的使用。(非常简单)动态改变ViewPager对应的各个Fragment的tab字体颜色改变的小技巧。怎样自定义ViewPager的滑动跟随tabLine。(原创 2015-10-05 18:11:55 · 1431 阅读 · 1 评论 -
Android:AsyncTask的二次使用
通过这个Demo的练习,我对AsyncTask不再像之前那样陌生了。而且通过这个Demo,我对ListView/GridView去加载多图片这种需求有了更好的方式,也就是接下来这个Demo想要展示的内容。之前对List去加载多图片这样的需求,要么是子线程去搞一下,要么直接在主线程搞。当然,在主线程搞的前提是,是加载本地图片,不是网络图片。没有去使用什么Lrucache,也没有使用滑动时停止加载,不原创 2015-10-03 13:16:09 · 815 阅读 · 0 评论 -
Android:SqliteDatabase 数据库的简单使用
其实做Android这么久还是对数据库这一块比较陌生,在实际项目中,没有搞过数据库这一块。对数据库总是有一些惧怕。不小心看到慕课网有对数据库的讲解,于是根据讲解写了一个简单的Demo。主要是熟悉一下sql语句,进行数据库的创建,表的创建,对表进行增删改查数据的操作。以及对SQLiteOpenHelper的简单使用。代码很少,且不涉及布局文件,所有的信息通过log去查看就好。首先是Activi原创 2015-10-04 11:04:34 · 1347 阅读 · 0 评论 -
Android:初窥手势识别
这里写链接内容* 对于手势识别这高大上的名词,一看就很牛叉的样子。我也没有在项目中使用过。于是,看到慕课网有相应的讲解,就根据讲解写了一个Demo,学习一下Android 手势识别的使用。 * 代码很少,也没什么说的。主要就是对几个api的使用。 * 首先是xml布局:<RelativeLayout xmlns:android="http://schemas.android.com/apk/re原创 2015-10-04 21:11:07 · 658 阅读 · 0 评论