![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
android
_shampoo_
蜗牛
展开
-
设置Dialog全屏显示(转)
昨天有人问如何让Dialog全屏显示?默认的Dialog是不能全屏的。也就是怎么设置Dialog的Layout都没用的。 有一个地方可以设置。 就是。。。。 看代码直观。 先设置一个style Xml代码 style name="Dialog_Fullscreen"> item name="android:w转载 2014-07-15 16:39:09 · 1248 阅读 · 0 评论 -
超全超好用的ndk开发环境搭建参考文档,eclipse和android studio
发现超全超好用的ndk开发环境搭建参考文档,记录一下:Eclipse 平台http://blog.csdn.net/dagaozi/article/details/50881358http://blog.csdn.net/dagaozi/article/details/50883564Android studio 平台http:/原创 2016-11-29 16:26:25 · 283 阅读 · 0 评论 -
MVP模式
由于原生 Android 开发应该已经是一个基础的 MVC 框架,所以在初始开发的时候并没有遇到太多框架上的问题,可是一旦项目规模到了一定的程度,就会变得代码难读,不好维护,无法测试的囧境。那么就需要对整个项目的代码结构做一个总体上的规划,最终的目的是使代码可读,维护性好,方便测试。于是我们的MVP就带着他的使命感现身啦!MVC和MVP的区别MVP与MVC有着一个重大的区别:在原创 2016-12-11 03:10:44 · 309 阅读 · 0 评论 -
CMakeList配置之编译多个.cpp文件
上次提到AndroidStudio2.2进行NDK开发超方便的配置方式,不用进行Android.mk 配置,也不用进行Application.mk配置,只要配置CMakeList即可。那么问题来了,通过该方式生成的配置文件默认是只native-lib.cpp一个cpp文件的,那么怎么配置编译多个.cpp文件呢?以之前发布的NDK下获取IEIM并且使用MD5算法加密为例,我们另外原创 2016-12-01 18:58:10 · 14547 阅读 · 3 评论 -
listview的优化进阶
聊到listview的优化,很多人都知道通过convertview的tag和ViewHolder进行item的复用,但除此之外还有什么别的吗?众人皆知的方案这里就不赘述了,这里再介绍几种优化方案多个类型的ViewType采用这种方法不是那么规矩的布局也一个listview便可实现了,当我们在Adapter中调用方法getView的时候,如果整个列表中的Item Vi原创 2016-12-01 22:49:31 · 410 阅读 · 0 评论 -
Android 性能分析工具——TraceView 的使用方法
前面唠叨最近公司app中有些列表在滑动的时候会有卡顿现象,我就开始着手解决这些问题,解决问题之前首先要分析列表滑动的性能瓶颈在什么地方。因为之前不会正确使用TraceView这个工具,主要是看不懂TraceView界面下方数据指标的值代表什么意思…以前我用StopWatch类来分析性能,现在觉得弱爆了…不过有些地方StopWatch工具类还是很简单好用的~网上可以找了很多博客来介绍这个工具转载 2016-12-02 12:31:08 · 544 阅读 · 0 评论 -
Android Studio中怎么使用DDMS工具?
随着android studio的广泛使用,开发人员对相关工具的使用需求更加凸显。昨天在一个android studio教程网站上,看到一篇有关DDMS工具使用的相关知识,感觉很不错,分享给大家,一起来看看吧,新技能get走起~~首先,我们需要了解的是DDMS工具是个什么鬼?其实,DDMS(Dalvik Debug Monitor Service),是 Android 开发环境中的Da转载 2016-12-02 12:41:49 · 914 阅读 · 0 评论 -
Android 6.0权限问题
前言 谷歌在2015年8月份时候,发布了Android 6.0版本,代号叫做“棉花糖”(Marshmallow ),其中的很大的一部分变化,是在用户权限授权上,或许是感觉之前默认授权的不合理,现在6.0出来,使得用户权限授权变得合理。这可能也是参考IOS系统的,只有在用户需要使用权限的时候,才去授权请求,这样做的目的是提高用户体验,当然,用户感觉好了,受苦的是我们开发人员,原来的规则不适用了,转载 2016-12-02 16:51:29 · 399 阅读 · 0 评论 -
内存分析工具 MAT 的使用
1 内存泄漏的排查方法Dalvik Debug Monitor Server (DDMS) 是 ADT插件的一部分,其中有两项功能可用于内存检查 :· heap 查看堆的分配情况· allocation tracker跟踪内存分配情况DDMS 这两项功能有助于找到内存泄漏的操作行为。Eclipse Memory Analysis Tools (MAT) 是一转载 2016-12-02 13:16:01 · 262 阅读 · 0 评论 -
Leakcanary 检查OOM
内存泄漏是困扰开发者的一大问题,上篇讲述了如何用MAT分析hprof文件来优化内存,那么今天来介绍一下Leakcanary这个更智能的好东东:Leakcanary的原理RefWatcher.watch() 创建一个 KeyedWeakReference 到要被监控的对象。然后在 AndroidWatchExecutor 的后台线程检查引用是否被清除,如果没有,调原创 2016-12-04 17:13:16 · 404 阅读 · 0 评论 -
为什么选择okhttp?
OkHttp 封装了请求和缓存和缓存OkHttp是一个相对成熟的解决方案,据说Android4.4的源码中可以看到HttpURLConnection已经替换成OkHttp实现了。所以我们更有理由相信OkHttp的强大。OkHttp 处理了很多网络疑难杂症:会从很多常用的连接问题中自动恢复。如果您的服务器配置了多个IP地址,当第一个IP连接失败的时候,OkHttp会自动尝试下一个IP原创 2016-12-10 17:33:44 · 2094 阅读 · 0 评论 -
Android中WebView的JavaScript-native交互
一、Android中WebView的漏洞分析最近在开发过程中遇到一个问题,就是WebView使用的时候,还是需要解决之前系统(4.2之前)导致的一个漏洞,虽然现在这个系统版本用户很少了,但是也不能忽视,关于这个漏洞,这里就不多做解释了,可能有的同学早就了解了,本来想写一篇文章详细介绍一下,但是网上的知识太多了,而且都很详细,就没弄了,这里大致简单明了的说几句:第一、漏洞产生的原因这个漏转载 2016-11-30 23:40:39 · 371 阅读 · 0 评论 -
JNI 实战全面解析
简介项目决定移植一款C++开源项目到Android平台,开始对JNI深入研究。JNI是什么?JNI(JavaNative Interface)意为Java本地调用,它允许Java代码和其他语言写的代码进行交互,简单的说,一种在Java虚拟机控制下执行代码的标准机制。NDK是什么?Android NDK(Native Development Kit )是一套工具集合,允许转载 2016-11-30 22:45:33 · 504 阅读 · 0 评论 -
【BUG解决】WebView cookies清理
今天在项目中发现一个BUG在使用新浪微博账户登录应用时,webview会自动登录上次的微博帐号!(因为webview 记录了微博帐号和密码的cookies)所以,需要清除SessionCookie: Java代码 CookieSyncManager.createInstance(this); CookieSyncManager.getInstance().转载 2014-07-15 13:47:41 · 661 阅读 · 0 评论 -
Android性能调优
Android性能调优本文主要分享自己在appstore项目中的性能调优点,包括同步改异步、缓存、Layout优化、数据库优化、算法优化、延迟执行等。 性能优化专题已完成五部分: 一、性能瓶颈点整个页面主要由6个Page的ViewPager,每个Page为一个GridView,GridView一屏大概显示4*4的item信息(本文最后有附图)。由于网络数据获取较多且转载 2014-07-15 13:51:22 · 427 阅读 · 0 评论 -
Eclipse如何解决启动慢?
一般在不对eclipse进行相关设置的时候,使用eclipse总是会觉得启动好慢,用起来好卡,其实只要对eclipse的相关参数进行一些配置,就会有很大的改善。 加快启动速度 1.在eclipse启动的时候,它总是会搜索让其运行的jre,往往就是这个搜索过程让eclipse启动变慢了。(没设置时,等2-3s出现进度条,设置后直接出现进度条) 只要在eclipse.i转载 2014-07-15 13:52:19 · 446 阅读 · 0 评论 -
安卓ADB端口被占用/ADB无法使用解决办法
首先在使用ADB前所有手机辅助类软件1、CMD命令窗口输入:adb nodaemon server 。然后就会提示你哪个端口被占用了。2、输入netstat -ano | findstr "5037" 。然后会弹出提示告诉你哪些进程占用了该端口,记住非0地址的后面的数字3、打开任务管理器,点击“进程“,“查看”-“选择列”,勾选PID4、查找第2步中看到的数字PID,然后结束相关进转载 2014-07-14 17:01:13 · 626 阅读 · 0 评论 -
debug和Release的区别
Debug版本包括调试信息,所以要比Release版本大很多(可能大数百K至数M)。至于是否需要DLL支持,主要看你采用的编译选项。如果是基于ATL的,则Debug和Release版本对DLL的要求差不多。如果采用的编译选项为使用MFC动态库,则需要MFC42D.DLL等库支持,而Release版本需要MFC42.DLL支持。Release Build不对源代码进行调试,不考虑MFC的诊断宏,使转载 2014-07-14 12:03:02 · 572 阅读 · 0 评论 -
Android adb常见问题整理
以下都是ADB连接问题,可以通过尝试如下步骤,由简单度排序1. 插拔下USB连接线2. 关闭USB模式再打开3. 执行以下命令adb kill-serveradb start-server 4. 效果与3相同DDMS - Devices - Reset adb5. 关闭所有PC套件,例如:杀死 Wandoujia 相关的所有进程,ok转载 2014-07-08 17:50:07 · 758 阅读 · 0 评论 -
Android4.4之WebView
至android4.4 发布以来,各个手机厂家也相继跟上潮流,推出了时尚的android4.4手机系统,如魅族、小米三星。每次新的android新的sdk入市,总能让我们这些个苦逼程序员头疼好一阵,无奈,既然选择了远方就只顾风雨兼程。首先给大家讲讲android4.4 新特性之webview。原创 2014-07-06 17:25:32 · 1554 阅读 · 3 评论 -
Android 4.4 新特性分析-15项大改进!
摘要: Google发布了Android 4.4 KitKat,并其同时面世的还有新旗舰Nexus 5。Android 4.4 KitKat有怎样的改进、是否值得升级呢,下面就为大家呈现Android 4.4 KitKat的全部新特性。1. 新的拨号和智能来电显示首先,新的拨号 ...Google发布了Android 4.4 KitKat,并其同时面世的还有新旗舰Nexus转载 2014-07-06 16:07:42 · 534 阅读 · 0 评论 -
Android 4.4 KitKat 使用Chrome DevTools 远程调试WebView
至android4.4 发布以来,各个收藏、转载 2014-07-06 15:53:35 · 1039 阅读 · 0 评论 -
Gradle 常用命令参数及解释
介绍Gradle 是google开发的基于groovy语言 ,ant 构建的一种配置型语言Gradle 是基于groovy语言实现(基于JVM的语法和java类似的脚本语言)的一个Android编译系统, google针对Android编译用groovy语言开发了一套dsl,有额外需要直接使用groovy解决gradle wrapper每个基于gradle构建的工程都有一个grad转载 2016-12-06 14:49:54 · 6350 阅读 · 0 评论 -
Android 代码检查工具SonarQube
代码检查工具能帮我们检查一些隐藏的bug,代码检查工具中sonar是比较好的一个。官网Sonar 概述 Sonar 是一个用于代码质量管理的开放平台。通过插件机制,Sonar 可以集成不同的测试工具,代码分析工具,以及持续集成工具。与持续集成工具(例如 Hudson/Jenkins 等)不同,Sonar 并不是简单地把不同的代码检查工具结果(例如 FindBugs转载 2016-12-06 17:43:04 · 419 阅读 · 0 评论 -
Android获取屏幕宽度的4种方法
Android获取屏幕宽度的4种方法方法一: WindowManager wm = (WindowManager) this .getSystemService(Context.WINDOW_SERVICE); int width = wm.getDefaultDisplay().getWidth(); int height = wm.getDefaultDisplay(原创 2016-11-28 16:49:33 · 294 阅读 · 0 评论 -
简易的饼状图,柱状图,统计图
项目里需要用到统计图,AChartEngine,MPAndroidChart等都比较复杂,不需要那么多功能的情况下使用它们难免造成冗余,于是开始自定义统计图目前只做了柱状图和饼状图,效果如下:有兴趣的可以上github下载我的代码 https://github.com/xiaopei/simpleChart原创 2017-03-17 13:13:18 · 1406 阅读 · 0 评论 -
获取手机权限是否开启
【通知访问权限】是否开启(获取推送的应用、图标、标题、描述、跳转等)跳转到相应设置页public static boolean isNotiPerEnabled(Context context) { String pkgName = context.getPackageName(); final String flat = Settings.Secure.getString(c原创 2017-07-25 16:30:13 · 964 阅读 · 0 评论 -
Stetho在Chrome上调试Android网络和数据库
通过chrome来查看android数据库。集成步骤:引入依赖包 compile 'com.facebook.stetho:stetho:1.3.1'初始化一下 public class MyApplication extends Application { public void onCreate() { super.onCreate();原创 2017-07-27 16:05:03 · 448 阅读 · 0 评论 -
seeker thumb 透明
项目中需要做个量表题,初始状态需要不显示thumb,于是我在layout中设置thumb为透明色,ok,展示没问题,但是无法滑动了,于是找ui做了个thumb图大小的透明图,但初始状态thumb并没有透明,如图:解决方法:在seekbar中添加 android:splitTrack="false" 即可成功了原创 2018-01-21 17:30:16 · 308 阅读 · 0 评论 -
FragmentPagerAdapter与FragmentStatePagerAdapter区别
在一个 Android 应用中,我使用 FragmentPagerAdapter 来处理多 Fragment 页面的横向滑动。不过我碰到了一个问题,即当 Fragment 对应的数据集发生改变时,我希望能够通过调用 mAdapter.notifyDataSetChanged() 来触发 Fragment 页面使用新的数据调整或重新生成其内容,可是当我调用 notifyDataSetChange原创 2018-01-22 19:17:02 · 225 阅读 · 0 评论 -
ViewPager使用注意事项
在tabview里使用viewpager容器切换fragment时最好使用getChildFragmentMannerViewPager 作为展示一组页面的容器,在Android上被广泛使用,这边文章将围绕 ViewPager 如何显示页面展开,接口如何设计展开。PagerAdapter 的接口设计ViewPager 是与一组页面进行交互的容器,那么怎么设计交互的接口就成为设计成败的关键。我们会发原创 2017-07-06 16:19:25 · 649 阅读 · 0 评论 -
解决:java.lang.IllegalArgumentException:No view found for id for fragment
getFragmentManager()所得到的是所在fragment 的父容器的管理器,getChildFragmentManager()所得到的是在fragment 里面子容器的管理器。getSupportFragmentManager()主要用于支持 3.0以下android系统API版本,3.0以上系统可以直接调用getFragmentManager() ,因为fragment是3.0以原创 2018-01-19 17:40:30 · 3656 阅读 · 0 评论 -
Can not perform this action after onSaveInstanceState
参考:https://www.jianshu.com/p/d9143a92ad94出现如题问题的时候,只需将fragmentTransaction.commit()方法置换为fragmentTransaction.commitAllowingStateLoss()方法即可。commitAllowingStateLoss()相比commit()方法,就只是一个简单的判断而已,并且只有原创 2018-01-19 18:13:05 · 219 阅读 · 0 评论 -
支持视频的富文本编辑器
随着时代的发展,市场对技术的要求越来越高,功能需要做得越来越完善。最近需要在手机端做富文本编辑器,不但支持排版、图文,还需要支持视频上传,于是自己东叔整了个代码详情见:https://github.com/xiaopei/RichEditor...原创 2018-08-20 15:37:28 · 3216 阅读 · 0 评论 -
databinding异常Error:(250, 72) 错误: 找不到符号 符号: 方法 getResources() 位置: 类型为String的变量 type
在databing中定义了type类的variable使用处代码如下:所报错误如下:解决方案为:检查布局文件中是否使用了名为type的控件id, databing中可以直接通过控件id读取控件的text, 于是产生冲突, 随意选择修改变量名或者id名中的一个即可原创 2017-03-16 12:33:58 · 9273 阅读 · 0 评论 -
NestedScrollView嵌套RecycleView或RecycleView嵌套RecycleView的bug
NestedScrollView嵌套RecycleView,一是会出现只显示一行的情况,二是滑动异常即事件冲突。RecycleView嵌套RecycleView 会出现当子RecycleView的item高度不一致时会显示不全,并且导致子RecycleView能滚动把design库和V7库升级到23.2以上,注意加上以下代码LinearLay原创 2017-03-13 12:15:27 · 1140 阅读 · 0 评论 -
android打开pdf ppt word excel等文件
//android获取一个用于打开HTML文件的intent public static Intent getHtmlFileIntent(File file) { Uri uri = Uri.parse(file.toString()).buildUpon().encodedAuthority("com.android.htmlfileprovi原创 2017-02-13 10:19:39 · 5211 阅读 · 3 评论 -
自定义view
自定义属性onMeasureonLayout (ViewGroup)父控件决定子空间位置onDrawonTouchEvent dispatchTouchEventonInterceptTouchEvent (ViewGroup)attrs context.obtainStyledAttributes(attrs,R.styleable))原创 2016-12-21 15:00:10 · 527 阅读 · 0 评论 -
学习笔记--databinding
支持的表达式 二元&^一元+-!~移位>> >>> 比较 == > = instanceofGrouping() 分组文字 character String numeric nullCast 类型转换方法调用 点号. 或 两个冒号::Field访问Array访问[]三元运算符 a>b?a:b取非空表达式 andr原创 2016-12-24 17:43:54 · 692 阅读 · 0 评论 -
android framelayout两布局重叠,如何让下层不响应事件
在layout文件里FrameLayout下增加android:clickable="true"在上层布局的父布局上增加android:clickable="true"原创 2017-01-09 13:25:19 · 8189 阅读 · 0 评论