
Android
文章平均质量分 80
何以解惑
这个作者很懒,什么都没留下…
展开
-
讲讲关于自定义控件--ViewDragHelper(试图拖拽辅助工具)!
其实关于自定义控件,我个人认为是安卓中最为重点也是最难得一个知识点,为什么这么说呢?因为自定义控件 需要掌握view的绘制流程 事件的传递过程 以及paint和canvas的大量api,这都是需要不停地去熟悉他,才能逐渐掌握自定义控件,这是一个过程,需要大家常去学习!自定义控件一般分为三种 组合控件 继承控件 纯粹自定义控件,前两种不多说了,主要去介绍第三种,关于事件的分发流程以及绘原创 2017-03-13 22:18:01 · 431 阅读 · 0 评论 -
数据库使用心得
今天发现一个bug,当测试发现退出账号登录其他账号时,之前账号的数据库数据没有清除导致,数据错乱!嗯嗯,真是我的锅,我背!一般删除数据库数据有两种方案第一种 mContext.deleteDatabase(name); name是数据库名字第二种SQLiteDatabase writableDatabase = helper.getWritableDatabase();writa原创 2017-05-11 16:48:18 · 875 阅读 · 0 评论 -
点击通知打开activity的注意事项
关键在于开启一个新的进程用来检测app是否运行以及打开activity否则同一个进程,应用关闭,通知也就关闭了,其它没什么http://www.jianshu.com/p/224e2479da18如果只想要一个按钮,那么设置一个即可会自己自动居中new AlertDialog.Builder(CameraActivity.this) .set转载 2017-05-25 10:56:59 · 413 阅读 · 0 评论 -
Androdi控件小知识点(不断更新)
一 EditText当EditText在布局文件xml设置属性android:inputType="numberDecimal"时,点击时输入法会自动切换成数字输入原创 2017-05-25 11:08:46 · 220 阅读 · 0 评论 -
Aandroid广播小知识点(持续更新)
一 发广播更新相册以前发更新相册的广播,会报权限问题,那是因为Android4.4中限制了系统应用才有权限使用广播通知系统扫描SD卡。sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED,Uri.parse("file://" + file))); 所以现在发广播更新相册是sendBroadcast(new Intent(Int原创 2017-06-23 14:13:48 · 276 阅读 · 0 评论 -
Dagger2的使用,这一篇就够了!
大家既然想用Dagger,肯定多少有些了解,我就不介绍太多!本篇内容不讲废话,直接教你用Dagger,不会去介绍什么Dagger的好处,什么是依赖,什么是控制反转等等,这篇就是教你看完拿到手就能用Dagger,当然几个重要的注解必须介绍,毕竟Dagger的核心就是那几个注解,注解的介绍也是用到才会介绍,文章末尾会放上一些链接用来补充Dagger的介绍以及优缺点等等,当然,如果有时间我也会写原创 2017-05-25 16:40:20 · 650 阅读 · 0 评论 -
安卓开发最佳实践(建议)
github https://github.com/futurice/android-best-practices#data-storage翻译(不完全) http://blog.youkuaiyun.com/myhui123/article/details/43701369github (最佳时间示例) https://github.com/tianzhijiexian/Android-Best-Pract...原创 2018-03-16 15:02:20 · 298 阅读 · 0 评论 -
Android Studio一直编译卡住!
网上大部分都是说网络问题,改成离线模式,设置代理等等!而我这个不是啊..之前一直编译好好的,就是加了段代码做下测试,结果就编译不过去了,关键这个代码就是一个类,哪都没调用,还好代码不多一点一点找,发现原来是一个死循环导致的代码是while (true){ OutputStream out = mSocket.getOutputStream(); InputStr...原创 2018-09-07 18:20:22 · 2162 阅读 · 1 评论 -
接上一篇,bugly热更新教程! 史上最简单..
老规矩,先依赖工程gradledependencies添加classpath "com.tencent.bugly:tinker-support:1.1.1"之所以这里降低tinker-support版本是因为如果用最新的,会出现问题,因为build:gradle:3.2.0'可能thinker官方还没有适配!然后app gradle添加依赖// 依赖插件脚本...原创 2019-07-15 11:45:39 · 370 阅读 · 0 评论 -
网络请求框架Retrofit
网络请求框架,自从开发以来经历过多个网络访问框架了HttpURLConnection---> HttpClient--->Async Http Client--->Volley--->okhttp 以上这些不做重点介绍,以后可能会单独发个博客来对比他们的优缺点,想当初刚开始接触网络请求最先用的就是HttpURLConnection ,还用这个api写了个多线程断点续传,想想都是回忆啊...现在原创 2017-03-11 15:19:37 · 506 阅读 · 1 评论 -
在Studio进行Aandroid开发使用Lambda语法!
什么是Lambda语法?为什么使用Lambda?Lambda的优点是什么?我该如何在开发中使用呢?嗯嗯,相信你早听说过Lambda的大名了,别急别急,小兄弟听我娓娓道来lambda表达式,它将允许我们将行为传到函数里。在Java 8之前,如果想将行为传入函数,仅有的选择就是匿名类,需要6行代码。而定义行为最重要的那行代码,却混在中间不够突出。Lambda表达式取代了匿名类,原创 2017-04-13 14:15:36 · 428 阅读 · 0 评论 -
APK打包 (多渠道打包,美团打包)
多渠道打包的原因就在于定向投放广告!我们可以知道我们的应用在哪个app应用平台上下载量最多,这样我们可以定向花钱打广告!当然也是为了统计下载量!原理就是为apk打上标记,运行apk时获取标记传给后台统计,仅此而已.常用的就由第三方统计比如友盟!多渠道打包的方式:1.一个个打包出来,如果渠道很少可以这么做!2.使用ant,这个要求比较高需要知道如何写ant脚本3.grad原创 2017-04-04 18:59:34 · 821 阅读 · 0 评论 -
Android6.0权限
1 什么是Android6.0权限?Android运行时权限,是为了Android用户的安全性考虑.2 为什么会出现?让用户对于应用的权限可控,提高安全性,6.0权限的出现从一定程度上避免了用户的数据泄露,6.0技术出现之前,我们一般都是在清单文件中配置权限,但是如果用户要安装这个应用就必须统一应用获取所申请的权限.这样极大地造成了用户的数据泄露,比如用户下载了一个单机斗地主,你妹啊居原创 2017-03-07 23:06:43 · 354 阅读 · 1 评论 -
Aandroid截屏遇到SurfaceView
最近做项目遇到个问题,网上搜索了一下,很多人也遇到这个问题,觉得很有必要拿出来说一下,做个总结!嗯,内容精华,千万别错过!项目具体的需求说起来又要大费周章说半天,我就直接简单地说下我们的目的是什么,很简单就是把拍摄的照片和自定义view原样显示(简单理解就是截屏) 如下图空白区域就是SurfaceView,空白区域的上方有个刻度尺,我们的目的就是要使拍摄的照片上存在这个刻度尺,这原创 2017-03-08 16:00:55 · 7794 阅读 · 1 评论 -
EventBus
1 什么是EventBus? EventBus是Android下高效的发布/订阅事件总线机制。(官方描述)相比较于同类型的有Handler,接口回调,广播优点在于:代码简洁,没错就是简洁缺点在于:难以维护,因为啊,当你的项目中多处使用了EventBus你会发现难以维护且难以追踪,并且还得为每种事件定义一个类(这个类就是数据的载体),用得多了就会导致代码结构的臃肿,所以对于EventB原创 2017-03-08 22:24:05 · 756 阅读 · 1 评论 -
自定义控件--快速索引(一)
经常我们在联系人等应用上会看到点击一个字母就会自动跳转到当前选项,这就是快速索引,但是怎么做呢?初期看到这个控件内心的想法就是将屏幕的的高分成26份每份对应一个字母,点击字母通过回调传递当前字母,然后根据获取的字母去定位到当前条目想法很好,我们实际去操作下,看看会遇到什么坑!自定义控件一定要多去操作多去练习,慢慢就会有感觉了!原创 2017-03-19 15:46:43 · 299 阅读 · 0 评论 -
自定义控件--快速索引(二)
昨天讲了快速索引View的绘制流程,以及触摸事件的监听今天将怎么把快速索引和listview利用起来形成类似联系人界面的效果,代码简单,不做太多讲解,最后会把源码上传到github上的用法最重要的就是对listview进行字母排序,相同的进行合并!然后通过回调的函数中调用listview的setSelcter数据源要进行排序,这里要注意需要对bean实现一个Comparab原创 2017-03-21 01:38:46 · 188 阅读 · 0 评论 -
通过浏览器打开本地Activity
今天偷偷懒,把以前的工作笔记,略加装饰发出来,没办法没啥时间啊...首先要明确 任何一个浏览器链接都是一个隐式意图大家是否遇到过,点击浏览器的某个文字或者按钮或者图片就回去打开本地的应用?按理说浏览器只是用来打开网页的,为什么可以去打开应用呢?这就要归结于我前面说的,任何一个浏览器的链接都是一个隐式意图,我们知道打开activity的两种方式隐式意图和显示意图,所以原创 2017-03-09 23:27:58 · 1952 阅读 · 1 评论 -
自定义控件--快速索引(三)
前面两篇的博文已经基本上吧自定义view介绍完了,但是这只是相对于我们项目来用的,用在具体的项目上这么写是合适的!但如果是给别人用呢?或者想改改颜色文字大小啥的,总不能每次都去改代码吧?所以我们要向安卓原生空间一样给自定义view定义一些属性以及方法给别人拿去用!首先定义属性,我们先在values文件夹下创建一个attrs.xml文件定义一个标签declare-styleable原创 2017-03-22 00:14:57 · 380 阅读 · 0 评论 -
数据库调试神器
在进行安卓开发的时候,如果用到了数据库,想知道自己创的表对不对,里面的数据符不符合要求有没有成功等等!一般你是怎么做的? 是不是打开DDMS,然后把app目录下的数据库拖出来,再用数据库工具打开?是不是特别麻烦,调试一次数据库就要拖出来看一下调试的结果,是不是特烦,那么现在有了一款调试神器,居然可以在浏览器上调试自己的数据库,除了调试数据库还可以查看所有的sharedpreferences,原创 2017-04-06 22:22:38 · 1335 阅读 · 0 评论 -
github你会么?
现在很多公司还在用svn进行版本控制(包括我这家公司),但是现在git渐渐的作为主流,所以各位一定要懂啊使用git的好处有很多,分布式管理,管理你的github开源项目,大家可以一起参与你的项目..跟我一起来熟悉git吧!一 Git相关1 什么是git? 其实就是一个开源的分布式版本控制系统,用于敏捷高效地处理你的项目.相比较于同类型的有svn,cvs(cvs实在太老我也没用过)原创 2017-03-12 22:45:55 · 412 阅读 · 1 评论 -
okhttp封装与Retrofit对比
我在前面的博文介绍了Retrofit,这里我拿我在公司独立开发应用使用okhttp封装与retrofit做下比较,你立马就会明白Retrofit的优势了,所以这里不会对okhttp做大篇幅介绍okhttp基本使用post get请求,okhttp也是有异步和同步请求 ,这里要注意了,okhttp的异步请求和volley不一样,volley的请求成功回调是直接运行在主线程中的,所以我在原创 2017-03-14 16:50:02 · 1700 阅读 · 0 评论 -
传感器开发流程!
今天公司要求我进行传感器的开发,而且只给2天时间,反映下自己没做过这方面可能需要时间延长下,不管,就给你两天时间! 干不完就使劲加班...现在企业压榨劳动力太赤裸裸了原创 2017-04-08 17:28:23 · 11613 阅读 · 0 评论 -
bugly应用crash上报,app更新,史上最简单接入...
1 去该地址https://bugly.qq.com/v2/workbench/create/E6713109D3ECDA1A2753085C8BAB151C 添加自己的app获取APPID2 app gradle中 添加implementation 'com.tencent.bugly:crashreport_upgrade:latest.release'如果自己的代码需要...原创 2019-07-11 16:41:44 · 563 阅读 · 0 评论