自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(31)
  • 资源 (1)
  • 收藏
  • 关注

原创 增加代码复杂度

再把bt-proguard.txt放置proguard-rules.pro同级目录,以下为bt-proguard.txt内容。

2023-11-07 19:51:39 120

原创 接上一篇,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 317

原创 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 512

原创 Android Studio一直编译卡住!

网上大部分都是说网络问题,改成离线模式,设置代理等等!而我这个不是啊..之前一直编译好好的,就是加了段代码做下测试,结果就编译不过去了,关键这个代码就是一个类,哪都没调用,还好代码不多一点一点找,发现原来是一个死循环导致的代码是while (true){ OutputStream out = mSocket.getOutputStream(); InputStr...

2018-09-07 18:20:22 2051 1

原创 安卓开发最佳实践(建议)

github https://github.com/futurice/android-best-practices#data-storage翻译(不完全) http://blog.csdn.net/myhui123/article/details/43701369github (最佳时间示例) https://github.com/tianzhijiexian/Android-Best-Pract...

2018-03-16 15:02:20 250

原创 安卓设计规范(不断更新)

会不断补充有利于安卓开发的一些规范或者技巧!一 建议使用Designtime属性要使用designtime属性,首先要确保你的布局中定义了工具命名空间:xmlns:tools="http://schemas.android.com/tools"工具命名空间是Android工具特别公认的命名空间,因此,当应用程序打包并且没有运行时开销时,所有在工具命名空间中的视图元素上定义的属性将被

2017-06-28 10:59:09 1269

原创 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 240

原创 debug模式与relese模式下!

我们经常有些代码是需要在debug模式下运行,而relese模式下是不用去运行的!  比如log日志,relese是不希望运行的! 比如 签名校验,我们希望在debug模式下是不运行的!这就要引出BuildConfig,该类存在于这个类存在一个Debug常量我们就是根据这个常量来判断那些代码执行Debug模式下这个常量自动为true,Relese模式下自动为fals

2017-06-12 15:02:52 1267

原创 Dagger2的使用,这一篇就够了!

大家既然想用Dagger,肯定多少有些了解,我就不介绍太多!本篇内容不讲废话,直接教你用Dagger,不会去介绍什么Dagger的好处,什么是依赖,什么是控制反转等等,这篇就是教你看完拿到手就能用Dagger,当然几个重要的注解必须介绍,毕竟Dagger的核心就是那几个注解,注解的介绍也是用到才会介绍,文章末尾会放上一些链接用来补充Dagger的介绍以及优缺点等等,当然,如果有时间我也会写

2017-05-25 16:40:20 562

原创 Androdi控件小知识点(不断更新)

一  EditText当EditText在布局文件xml设置属性android:inputType="numberDecimal"时,点击时输入法会自动切换成数字输入

2017-05-25 11:08:46 189

转载 点击通知打开activity的注意事项

关键在于开启一个新的进程用来检测app是否运行以及打开activity否则同一个进程,应用关闭,通知也就关闭了,其它没什么http://www.jianshu.com/p/224e2479da18如果只想要一个按钮,那么设置一个即可会自己自动居中new AlertDialog.Builder(CameraActivity.this) .set

2017-05-25 10:56:59 385

原创 数据库使用心得

今天发现一个bug,当测试发现退出账号登录其他账号时,之前账号的数据库数据没有清除导致,数据错乱!嗯嗯,真是我的锅,我背!一般删除数据库数据有两种方案第一种 mContext.deleteDatabase(name); name是数据库名字第二种SQLiteDatabase writableDatabase = helper.getWritableDatabase();writa

2017-05-11 16:48:18 823

转载 ImageView 正确使用姿势

http://mp.weixin.qq.com/s?__biz=MzA3NTYzODYzMg==&mid=2653578233&idx=1&sn=aea773c1e815fdef910fba28d765940b&chksm=84b3b1feb3c438e8372850a36bdcb87fdfb1ca793793a7c9598bcc792aabbb0f417b7a32c989&scene=0#wec

2017-04-18 09:45:15 302

原创 在Studio进行Aandroid开发使用Lambda语法!

什么是Lambda语法?为什么使用Lambda?Lambda的优点是什么?我该如何在开发中使用呢?嗯嗯,相信你早听说过Lambda的大名了,别急别急,小兄弟听我娓娓道来lambda表达式,它将允许我们将行为传到函数里。在Java 8之前,如果想将行为传入函数,仅有的选择就是匿名类,需要6行代码。而定义行为最重要的那行代码,却混在中间不够突出。Lambda表达式取代了匿名类,

2017-04-13 14:15:36 388

原创 传感器开发流程!

今天公司要求我进行传感器的开发,而且只给2天时间,反映下自己没做过这方面可能需要时间延长下,不管,就给你两天时间! 干不完就使劲加班...现在企业压榨劳动力太赤裸裸了

2017-04-08 17:28:23 11129

原创 数据库调试神器

在进行安卓开发的时候,如果用到了数据库,想知道自己创的表对不对,里面的数据符不符合要求有没有成功等等!一般你是怎么做的?  是不是打开DDMS,然后把app目录下的数据库拖出来,再用数据库工具打开?是不是特别麻烦,调试一次数据库就要拖出来看一下调试的结果,是不是特烦,那么现在有了一款调试神器,居然可以在浏览器上调试自己的数据库,除了调试数据库还可以查看所有的sharedpreferences,

2017-04-06 22:22:38 1279

原创 APK打包 (多渠道打包,美团打包)

多渠道打包的原因就在于定向投放广告!我们可以知道我们的应用在哪个app应用平台上下载量最多,这样我们可以定向花钱打广告!当然也是为了统计下载量!原理就是为apk打上标记,运行apk时获取标记传给后台统计,仅此而已.常用的就由第三方统计比如友盟!多渠道打包的方式:1.一个个打包出来,如果渠道很少可以这么做!2.使用ant,这个要求比较高需要知道如何写ant脚本3.grad

2017-04-04 18:59:34 759

原创 git你会用么?(2)

前面给大家讲解了关于git的基础东西,现在来升级一下吧前面我是从github上面clone下来的,现在我们本地创建首先初始化仓库  找个目录 右键git create repository here出现一个界面(比如你就想在这里写点代码提交给服务器就勾上,如果以后你打算一直用这个目录写代码就不勾)创建个文件,纳入版本控制,就会显示一个+号,但没有提交现在我们进行第一次提交c

2017-04-03 18:36:55 210

原创 安卓web app开发

安卓移动应用的混合开发,现在很多APP都开始着手实现了,比如淘宝的页面就是,但是吐槽下,确实又卡又慢,当然你可以反击我手机性能差...说说优点吧:1 快速上手支持快速迭代更新(快速上手:你可以不懂Android,IOS就可以直接开发,这点我想骂人 快速迭代:以前我们更改Android一些东西就要重新发布版本,现在完全不需要)2 避免移动应用商店审核带来的麻烦3 支持跨平台和

2017-03-27 23:55:37 1082

原创 自定义控件--快速索引(三)

前面两篇的博文已经基本上吧自定义view介绍完了,但是这只是相对于我们项目来用的,用在具体的项目上这么写是合适的!但如果是给别人用呢?或者想改改颜色文字大小啥的,总不能每次都去改代码吧?所以我们要向安卓原生空间一样给自定义view定义一些属性以及方法给别人拿去用!首先定义属性,我们先在values文件夹下创建一个attrs.xml文件定义一个标签declare-styleable

2017-03-22 00:14:57 334

原创 自定义控件--快速索引(二)

昨天讲了快速索引View的绘制流程,以及触摸事件的监听今天将怎么把快速索引和listview利用起来形成类似联系人界面的效果,代码简单,不做太多讲解,最后会把源码上传到github上的用法最重要的就是对listview进行字母排序,相同的进行合并!然后通过回调的函数中调用listview的setSelcter数据源要进行排序,这里要注意需要对bean实现一个Comparab

2017-03-21 01:38:46 162

原创 自定义控件--快速索引(一)

经常我们在联系人等应用上会看到点击一个字母就会自动跳转到当前选项,这就是快速索引,但是怎么做呢?初期看到这个控件内心的想法就是将屏幕的的高分成26份每份对应一个字母,点击字母通过回调传递当前字母,然后根据获取的字母去定位到当前条目想法很好,我们实际去操作下,看看会遇到什么坑!自定义控件一定要多去操作多去练习,慢慢就会有感觉了!

2017-03-19 15:46:43 265

原创 okhttp封装与Retrofit对比

我在前面的博文介绍了Retrofit,这里我拿我在公司独立开发应用使用okhttp封装与retrofit做下比较,你立马就会明白Retrofit的优势了,所以这里不会对okhttp做大篇幅介绍okhttp基本使用post  get请求,okhttp也是有异步和同步请求 ,这里要注意了,okhttp的异步请求和volley不一样,volley的请求成功回调是直接运行在主线程中的,所以我在

2017-03-14 16:50:02 1606

原创 讲讲关于自定义控件--ViewDragHelper(试图拖拽辅助工具)!

其实关于自定义控件,我个人认为是安卓中最为重点也是最难得一个知识点,为什么这么说呢?因为自定义控件 需要掌握view的绘制流程  事件的传递过程  以及paint和canvas的大量api,这都是需要不停地去熟悉他,才能逐渐掌握自定义控件,这是一个过程,需要大家常去学习!自定义控件一般分为三种 组合控件  继承控件 纯粹自定义控件,前两种不多说了,主要去介绍第三种,关于事件的分发流程以及绘

2017-03-13 22:18:01 383

原创 github你会么?

现在很多公司还在用svn进行版本控制(包括我这家公司),但是现在git渐渐的作为主流,所以各位一定要懂啊使用git的好处有很多,分布式管理,管理你的github开源项目,大家可以一起参与你的项目..跟我一起来熟悉git吧!一 Git相关1 什么是git? 其实就是一个开源的分布式版本控制系统,用于敏捷高效地处理你的项目.相比较于同类型的有svn,cvs(cvs实在太老我也没用过)

2017-03-12 22:45:55 345 1

原创 网络请求框架Retrofit

网络请求框架,自从开发以来经历过多个网络访问框架了HttpURLConnection---> HttpClient--->Async Http Client--->Volley--->okhttp 以上这些不做重点介绍,以后可能会单独发个博客来对比他们的优缺点,想当初刚开始接触网络请求最先用的就是HttpURLConnection ,还用这个api写了个多线程断点续传,想想都是回忆啊...现在

2017-03-11 15:19:37 443 1

原创 通过浏览器打开本地Activity

今天偷偷懒,把以前的工作笔记,略加装饰发出来,没办法没啥时间啊...首先要明确 任何一个浏览器链接都是一个隐式意图大家是否遇到过,点击浏览器的某个文字或者按钮或者图片就回去打开本地的应用?按理说浏览器只是用来打开网页的,为什么可以去打开应用呢?这就要归结于我前面说的,任何一个浏览器的链接都是一个隐式意图,我们知道打开activity的两种方式隐式意图和显示意图,所以

2017-03-09 23:27:58 1883 1

原创 EventBus

1 什么是EventBus?  EventBus是Android下高效的发布/订阅事件总线机制。(官方描述)相比较于同类型的有Handler,接口回调,广播优点在于:代码简洁,没错就是简洁缺点在于:难以维护,因为啊,当你的项目中多处使用了EventBus你会发现难以维护且难以追踪,并且还得为每种事件定义一个类(这个类就是数据的载体),用得多了就会导致代码结构的臃肿,所以对于EventB

2017-03-08 22:24:05 452 1

原创 Aandroid截屏遇到SurfaceView

最近做项目遇到个问题,网上搜索了一下,很多人也遇到这个问题,觉得很有必要拿出来说一下,做个总结!嗯,内容精华,千万别错过!项目具体的需求说起来又要大费周章说半天,我就直接简单地说下我们的目的是什么,很简单就是把拍摄的照片和自定义view原样显示(简单理解就是截屏)  如下图空白区域就是SurfaceView,空白区域的上方有个刻度尺,我们的目的就是要使拍摄的照片上存在这个刻度尺,这

2017-03-08 16:00:55 7702 1

原创 Android6.0权限

1 什么是Android6.0权限?Android运行时权限,是为了Android用户的安全性考虑.2 为什么会出现?让用户对于应用的权限可控,提高安全性,6.0权限的出现从一定程度上避免了用户的数据泄露,6.0技术出现之前,我们一般都是在清单文件中配置权限,但是如果用户要安装这个应用就必须统一应用获取所申请的权限.这样极大地造成了用户的数据泄露,比如用户下载了一个单机斗地主,你妹啊居

2017-03-07 23:06:43 297 1

原创 我的第一篇博客

总喜欢把心得,经验,技术写在笔记中,一直没有意识去写博客,渐渐意识到写博客去分享往往可以比记笔记获得的更多,同时在找工作时也可以是一个加分项!现在开始写还不晚,希望与大家共勉,希望自己一周至少能写一篇博客提升自己,请原谅我一周只能写一篇,工作压力大呀..废话结束..开始打怪升级!!!

2017-03-07 22:50:18 240 1

PhoneGap软件

软件太大分成两次下载,配合"PhoneGap所需软件"一起下载更配哦

2017-03-30

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除