老张家的独苗
微信搜索「老张家的独苗」,回复关键字「资料」获取海量学习资源。我是张星,CSDN博客专家,CSDN内容合伙人,"老张家的独苗"公号作者,GitChat付费专栏作者,拥有5+年的技术TL的项目管理经验,1000+面试经验。
展开
-
如何使用Fiddler对Android应用进行抓包
1.场景还原之Fliddler Fiddler是一款抓包神器,近日,由于项目中要嵌入H5页面,公司又没专门的UI设计师,所以你懂得,这个任务就要给我喽!可怜的我并没有艺术细胞,所以我想到求助抓包神器---Fliddler.话说Fliddler非常强大,是程序猿必备工具,好吧,今天我就跟大家分享一下如何使用Fliddler对Android应用进行抓包处理。2.Fliddler以及手机端原创 2016-12-15 23:46:24 · 5078 阅读 · 0 评论 -
极光推送集成解决方案
1. 极光推送集成背景 最近在研究推送和长连接,研究了几家这方面的平台之后,最后综合考虑选择了极光推送。长连接保活一直是一个大问题,尤其的android方面,最近谷歌公司的几次更新,android应用保活是越来越难做,android方面的推送的到达率更是惨不忍睹。国内android大环境大都以云端和客户端保持长连接的方式实现的。本文主要是说一下极光推送普通集成和极光推送厂商通道的集成...原创 2020-01-06 10:47:29 · 1300 阅读 · 0 评论 -
RecyclerView详解
1.android5.0重要控件的介绍①RecyclerView介绍: 替换listview的盛装数据的控件,运用好这个控件能够很多的避免listview与scrollview的滚动冲突,选择RecyclerView性能更优,listview能做的事情,RecyclerView样样都会,甚至更多。②FloatingActionButton介绍 它是一种带有悬浮效果的原创 2017-01-03 22:55:48 · 570 阅读 · 0 评论 -
关于java.lang.NoClassDefFoundError的解决方法
1.NoClassDefFoundError之场景还原 项目在后期收尾的时候,一直伴随着一个挥之不去的bug--java.lang.NoClassDefFoundError,这样导致了项目在app在Android版本5.0以下都不能运行,一登录就崩了,捉急!今天就这个错误,我决心耗费半天功夫,终于给破了,可喜可贺!接下来就该问题详细分解一下,希望能帮助大伙解决难关。2.java原创 2016-12-29 20:37:59 · 10289 阅读 · 4 评论 -
自定义ProgressDialog的实现
1.ProgressDialog之场景还原 最近在项目中,很多地方要加载H5界面,中间有个加载数据的空白档,为了不影响用户体验,ProgressDialog派上用场了。我喜欢简约,所以今天我就分享一个简约的自定义ProgressDialog的实现,效果图如下:2.自定义ProgressDialog的用法1.自定义ProgressDialog的style(在value原创 2016-12-21 21:57:22 · 1064 阅读 · 3 评论 -
关于webview的加载及缓存的总结
1.WebView的介绍 webview是Android中直接加载html页面的控件,它为webApp带来了新生命。那么,他的出现也伴随着很多问题的产生;今天就webview的加载及缓存方面的知识做个总结,希望对大家有所帮助。2.Webview的缓存webview的缓存分为两种:网页数据缓存和H5缓存①网页缓存的结构:/data/data/package_name/cac原创 2016-12-18 22:22:20 · 17056 阅读 · 2 评论 -
App更新进度显示在后台通知栏详解
1.场景还原 最近在项目中遇到App更新的问题,老大让更新进度直接显示在后台通知栏中,以前我都是用ProgressDialog撸成的,话说用户体验不好,要改成后台通知栏效果,好吧,谁让我不是老大的!改呗...今天就后台通知栏显示更新进度功能给大家伙分享一下,先上图:2.PendingIntent的介绍 根据pend英文意思就知道是延迟的intent,主要用来在某个事原创 2016-12-14 22:01:59 · 3677 阅读 · 0 评论 -
Android多渠道打包详解
1.Android多渠道打包的介绍 由于Android发布app应用市场众多:360,华为,豌豆荚,小米,qq, 91......,于是产生了多渠道打包的问题;今天就借助友盟的渠道统计讲解Android多渠道打包的方法。2.多渠道打包的具体步骤1.在Manifest文件中添加:meta-data android:name="UMENG_CHANNEL"原创 2016-12-13 23:35:04 · 790 阅读 · 1 评论 -
解决Android Studio第一次导入第三方工程超级慢的方法总结
1.场景分析 前几天,由于电脑重装系统了,所以重新安装leandroid环境;安装成功后,突然发现导入第三方工程十分慢,我甚至怀疑AS是不是死了,其实他是假死,他是在为你卖命的下载gradle,无奈,下载gradle往往得自备云梯。下面就自己的经验向大家介绍解决编译龟速的问题。2.方法总结①手动修改待导入工程的属性这种方法得知道已经安全导入工程的属性,然后一一对应的复制到待导入工原创 2016-12-12 22:55:12 · 3214 阅读 · 5 评论 -
关于Android6.0权限适配的问题
1.适配的背景 由于Android系统的碎片化严重,适配成了不可或缺的重要步骤;最近在项目中负责Android6.0的各种危险权限的适配,今天借此机会,向大家分享一下适配的原理。2.蓝牙权限的适配 有人会问为什么把蓝牙权限单独拿出来说,我只能回答,蓝牙权限有些特别,开启蓝牙搜索的时候,模糊定位也就开启了,而重要的是,模糊定位是一种危险的权限,在Android原创 2016-12-08 21:11:31 · 5709 阅读 · 0 评论 -
android环境的搭建
1.Java环境的搭建①配置JAVA_HOME : C:\Program Files (x86)\java\jdk1.8.0_25②配置CLASS_PATH : .;C:\Program Files (x86)\java\jdk1.8.0_25\bin;C:\Program Files (x86)\java\jdk1.8.0_25\lib\dt.jar;C:\Program F原创 2016-12-07 19:50:58 · 422 阅读 · 0 评论 -
Sqlite的使用详解
1.SQLite的介绍 sqlite是一款轻量型的数据库,不需要安装且不依赖第三方软件,除了主流操作系统 windows,linux之后,SQLite还支持其它一些不常用的操作系 统。 当然sqlite也是Android原生数据库,既然sqlite这么好,那么今天我就带着大家一起探索一下sqlite的真面目。2.SQLite的使用步骤1.创建SQLiteDBHelper,原创 2016-12-02 23:07:39 · 5432 阅读 · 1 评论 -
android studio绑定git进行项目多人合作开发及代码托管
1.git的介绍 git是一种项目版本控制工具,公司开发一般多用git,或者svn进行代码托管,最近,因为项目涉及到多人合作开发,所以趁着有空分享一下经验,以免各位走弯路。在以前我一直用git命令行进行代码的push,现在直接操作android studio从远程端pull代码,修改后push代码。2.git详细的用法1.工具:①git的安装;②android studio的安装原创 2016-12-04 22:00:33 · 5116 阅读 · 2 评论 -
Android基础之startActivityForResult详解
1.startActivityForResult的介绍 Android中startActivityForResult是为了给上一个Activity返回数据的方法,万丈高楼平地起,今天就Android的重点基础给大伙讲讲。2.startActivityForResult的详细用法1.创建两个Activity:MainActivity和SecondActivity,布局文件如原创 2016-12-29 21:46:30 · 569 阅读 · 0 评论 -
关于java.lang.Exception: 密钥库文件不存在: debug.keystore问题的解决方案
1.java.lang.Exception之场景还原 今天老大让我搞一下高德地图出行路线规划,之前我一直是用百度地图开发的;于是乎,按照高德地图官网进行获取key, 殊途同归,都要得到SHA1值,于是我用cmd命令行准备获取SHA1值,中间出现了小插曲,出现如图的异常:于是我第一反应就是去看看系统User下的.android文件夹,发现没有debug.keystore文件,问原创 2017-01-03 21:17:45 · 31850 阅读 · 8 评论 -
百度地图定位详解
百度地图 这几天一直闷在家里搞百度地图,但是搞来搞去,我的android studio IDE硬是搞不出地图,在过程中出现了一次默认的北京地图,不过然并卵;我总结了开发过程中的几个痛点分析,希望以后的伙伴别走弯路,不过貌似elipse的自带附件取SH1,生成的API Key的成功率大一些。1.运行工程,只出现网格不出现地图,有几种情况:1.检查模拟器或真机的网络时候连通。2原创 2016-09-26 21:57:02 · 5731 阅读 · 1 评论 -
Android中如何动态的添加布局
1.场景还原 在移动端实现用户与管理员意见交互的界面时,我困惑了半响,为什么?用户意见当然首先recyclerview,那么管理员反馈意见列表也用recyclerview?不,我的第一想法的确是那样的,不过戛然而止,因为如果两种角色的意见列表都有recyclerview的话,那就必须在用户意见的adapter里面嵌套管理员的recyclerview,先不说能不能实现,单单就一个界面两个原创 2017-04-07 10:56:59 · 7045 阅读 · 1 评论 -
打包后的apk微信分享依然失败
1.场景还原 最近,app的微信分享老是出现莫名的问题:明明已经打包成功了却还是微信分享失败,明明没打包的时候能够分享,打完包后却无法分享;经过一番折腾,终于找到了问题所在,今天我就针对打包后的apk依然无法微信分享作个讲解。2.知识回顾在动手解决问题之前,你要思考以下几个问题: ①你是否对工程进行了打包处理? ②你打包后的apk签名是否与微信端的签名保持一致?原创 2017-04-11 11:38:48 · 2829 阅读 · 1 评论 -
Android选择图片路径不一致的问题
1.场景还原 在适配的过程中,痛并快乐着!今天又冒出一个适配问题:Android4.4以下手机选择图片正常;4.4以上会偶然出现选择的图片跟返回的图片不一致,我想这就是没有去往上兼容了。2.知识回顾 在Android4.4之前,一般选择系统图库会使用以下代码:Intent intent = new Intent();intent.setType("image/*")原创 2017-04-07 15:54:56 · 825 阅读 · 0 评论 -
Android虚拟导航栏遮挡底部的输入框
1.场景还原 最近忙着app的适配,在这个过程问题中,各种机型的奇葩问题都出来了,适配真尼玛痛苦!今天就oppo机型虚拟导航栏遮挡底部的输入框的问题作个记录。2.解决方法 ① 在该Activity的根layout配置如下属性:android:fitsSystemWindows="true"android:clipToPadding="false"第一个属性:原创 2017-04-06 20:47:32 · 3511 阅读 · 0 评论 -
Android虚拟键盘无法顶起底部的输入框
1.虚拟键盘的坑 一般情况下,如果虚拟键盘弹不起底部的输入框,就直接在Manifest对应的Activity中配置一把,android:windowSoftInputMode="adjustPan"然而在我的工程中并没有什么卵用,然后还是google大神帮我解决这次的坑!2.解决方法①复制AndroidBug5497Workaround类到你的工程pub原创 2017-03-28 15:28:56 · 1592 阅读 · 0 评论 -
RecyclerView的动画及banner的用法
1.场景还原 这些天,在项目中我挖掘了很多实用的东西,趁今天有时间,给大伙分享一下:主要讲解RecyclerView的花式动画及banner的具体实现。先上图:鉴于没有上传gif效果动画,口述一下demo效果:banner自动轮播,recyclerview上下翻动以动态的效果呈现,好了,该说说具体实现了!2.RecyclerView的动画实现①先申明一个Recy原创 2017-01-15 20:25:48 · 2796 阅读 · 1 评论 -
关于Activity向Fragment传值的问题
1.场景还原 前几天,由于项目模块中要在一个Activity使用FragmentTabHost嵌入Fragment导航,这就涉及到Activity向Fragment传值的问题,今天就Activity如何向Fragment传值的问题及FragmentTabHost导航功能的实现,给大家做个分享,废话少说,先上图:2.FragmentTabHost实现底部导航功能①先观察布原创 2017-01-14 21:17:17 · 1844 阅读 · 0 评论 -
android广播机制BroadCastReceiver解析
1.BroadCastReceiver之场景还原 近些日子,项目中涉及到了许多广播,有监听自定义广播,还有监听系统级广播;广播机制在android中十分重要,今天趁有时间,给大家解析一下BroadCastReceiver的用法。2.BroadCastReceiver的具体用法 一般要使用广播,第一必须自定义一个广播类,并且继承BroadCastReceiver,并原创 2017-01-06 22:40:17 · 457 阅读 · 0 评论 -
高德地图自定义路线轨迹的重绘
1.高德地图重绘之场景还原 最近,项目中开辟了新需求,要求虚拟路线进行地图重绘,今天就高德地图的重绘作个分享!2.绘制方法的详解①给定几个关键坐标点的经纬度3Time定时器的详解原创 2017-01-04 20:57:22 · 26067 阅读 · 3 评论 -
DataPicker的详细讲解
1.DataPicker的简介 DataPicker是一款日期选择控件,当然github上已有开源;今天借花献佛,我就跟大家讲讲DataPicker。在项目中的个人中心一般都要设置出生年月,那么DataPicker将是最好的选择,莫激动,先看看效果图:2.DataPicker的使用,1.引用第三方库:compile 'cn.aigestudio.datepi原创 2016-11-30 17:18:18 · 8177 阅读 · 0 评论 -
PopupWindow的使用详解
1.PopupWindow的简介 PoppupWindow是一个弹框控件,与AlertDialog有点相像,不过他们又有很大的区别,PoppupWindow没有默认的布局,需要自己运用代码去动态的设置它的布局。先看效果图:2.PopupWindow的使用1.初始化PopupWindowView contentView = LayoutInflater.from原创 2016-11-28 22:50:21 · 841 阅读 · 0 评论 -
自定义设置刻度控件ScaleView的讲解
1.ScaleView的简介 ScaleView是一个可以设置身高,体重参数的自定义控件,其中也在github上开源,并被广为流传。因为公司最近的项目里要实现这样的需求,今天我就带着大家学习一下这个自定义控件。先上效果图:2.ScaleView的用法1.创建自定义BaseScaleViewpublic abstract class BaseScal原创 2016-11-27 19:25:21 · 3471 阅读 · 0 评论 -
android Json数据解析(一)
1.Json的相关介绍JSON 指的是 JavaScript 对象表示法(JavaScript Object Notation)JSON 是轻量级的文本数据交换格式JSON 独立于语言 *JSON 具有自我描述性,更易理解2.Json的基础知识了解1.Json的基本数据格式①对象:格式:{“键”:各种类型的值}②值:包括几种数据类型:String,int,数组,Ob原创 2016-10-10 22:11:13 · 910 阅读 · 0 评论 -
ShareSDK实现一键分享
1.ShareSDK的介绍 Sharesdk是第三方Mob移动服务平台提供的一个一键分享的SDK;有了ShareSDK,我们集成各个平台的分享功能的开发效率明显的提高了很多。接下来,就为大家讲解一下关于ShareSDK的技术重点,在经过一天半的探索,终于还是摸出了些许门道,在此分享给各位伙伴!2.ShareSDK的使用1.首先登陆Mob官网注册,官网地址:http://www.m原创 2016-10-09 15:49:31 · 7517 阅读 · 0 评论 -
FragmentTabHost的开发指南
1.FragmentTabHost的整体架构模型2.FragmentTabHost的痛点解析1.通过tabHost.setup()方法,我们能够正式的使用FragemtTabHost的实例tabHost.setup(this,getSupportFragmentManager(),R.id.content);2.通过tabHost.newTabSpec()创建Tab的子项。原创 2016-10-07 18:09:36 · 2326 阅读 · 2 评论 -
移动后台服务Bmob进阶篇(二)
Bmob的回顾 大家好,我是张星,十一也快过去了,程序猿们是该收收心撸代码了;我们上个星期讲过移动后台服务Bmob基础篇(一),没看过的建议大伙去看看哦。相信大家对Bmob也有一定的了解,但是了解是远远 不够的,那么我今天就来给大家讲讲Bmob进阶系列把。进阶篇的重点知识还原1.配置问题在Bmob的基础篇配置的基础上,仅仅加了一条配置:android {原创 2016-10-06 16:32:38 · 3035 阅读 · 1 评论 -
自定义控件View(一)
1.自定义控件View的介绍 很多android入门的新手对于自定义控件,心里估计会有一种恐惧的心理把,起初我也是这样的,不过不用怕,因为如果你要进一步的进阶称为高手的话,这一步,必须是轻车熟路,废话不多说,总之要多敲,多研究呗;接下来,我将以个人的理解,对自定义控件讲解一下。2.自定义View的属性首先想获得自定义View的属性,必须自己定义属性,在res/values下创建a原创 2016-09-29 13:19:28 · 704 阅读 · 0 评论 -
移动后台服务Bmob基础篇(一)
1.Bmob简介 Bmob是国内知名度比较高的开发移动后台服务的公司, 也就是说,对于我们开发工程师来说,不说去搭建自己app的服务器,Bmob提供了我们所需要的功能,哈哈,是不是很牛逼了,反正我是这么觉得的,那么接下来我久讲讲这个神奇的Bmob.2.Bmob开发环境搭建1.登陆Bmob官网,注册开发者账号。2.创建自己的应用.3.保存好自己的Applic原创 2016-09-28 16:28:47 · 2059 阅读 · 0 评论 -
selector,shape的自定义使用
1.selector的使用详解1.创建selector的xml资源文件右击drawable目录--》点击new--》Drawable resource file这样selector资源文件创建完毕,然后来编写它的功能 <item android:state_pressed="false" android:dra原创 2016-09-27 12:25:46 · 1151 阅读 · 1 评论 -
Volley的完美解析(二)
使用Volley加载网络图片 在上篇文章中有提到过,Volley是将AsyncHttpClient和Universal-Image-Loader的优点集成于一身的一个框架。我们都知道,Universal-Image-Loader具备非常强大的加载网络图片的功能,而使用Volley,我们也可以实现基本类似的效果,并且在性能上也豪不逊色于Universal-Image-Loader,下面我们原创 2016-09-24 14:34:43 · 394 阅读 · 0 评论 -
Volley完美解析(一)
1.Volley的介绍 在互联网高速发展的今天,即使是外行。也知道网络通信的重要性。当然,对于专业人士,Http通信大家应该熟悉的不行不行了。Android系统中主要提供了两种方式来进行Http通信,HttpURLConnection和HttpClient,几乎在任何项目的代码中我们都能看到这两个类的身影,使用率非常高。为了避免代码的重复性,提高复用性,于是乎,2013年Google原创 2016-09-23 17:58:51 · 737 阅读 · 0 评论 -
banner广告轮播的实现
1.广告轮播的实现 今天呢,我给大家分享一下广告轮播的一些值得注意的地方。 1>首页,创建一个Ad广告bean,把要在图片上显示的属性全定义在Ad中,上代码:public class AdDomain { private String id; // 图片id private String date; // 发布时间 private String title; // 标题原创 2016-09-23 16:17:38 · 1221 阅读 · 2 评论 -
mob短信验证
mob短信验证原创 2016-09-23 10:48:17 · 1267 阅读 · 2 评论 -
android json数据解析(二)
1.Gson的相关简介2.Gson的用法3.在项目中的应用实例原创 2016-10-11 22:54:47 · 660 阅读 · 0 评论