android开发
萌新小柴鸡
这个作者很懒,什么都没留下…
展开
-
Android 10 拨打电话流程
接续上一章节,理解Android 10 拨打电话流程packages/apps/Dialer/java/com/android/dialer/dialpadview/DialpadFragment.java输入完电话号码,点击拨打电话按钮进入到handleDialButtonPressed中首先判断是否未空电话号码,如果为空,就会加载上次输入的电话号码如果不为空,判断电话是否为非法号码,如果非非法号码,逻辑进入下面首先看CallIntentBuilder其本质为Intent ,其中原创 2021-04-02 15:29:11 · 1265 阅读 · 0 评论 -
Android 10 Dialer 主界面UI逻辑
自定义控件onDraw: 1. Region原创 2020-07-22 15:36:33 · 2637 阅读 · 0 评论 -
MVVM jetpack
最近看了一下jetpack框架,学习了一下别人写的mvvm框架,自己编写了一套始和自己的框架来使用,新手初写,多多指教!BaseActivity(添加了标题以及返回按钮,同时设置状态颜色,同时与databinding使用)public abstract class BaseActivity <V extends ViewDataBinding,VM extends BaseViewMod...原创 2019-12-18 09:43:13 · 1018 阅读 · 0 评论 -
android 屏幕适配
原文地址:http://www.cnblogs.com/tinyphp/p/4008400.html据统计目前市场Android手机的分辨率有是10余种,分辨率如此广泛使得我们在处理分辨率适应方便遇到不少难题,本文就此难点记录设计与实际布局中的解决技巧。 以320x480为蓝本设计布局因为Android布局的时候一般用dp为单位,而我们设计的时候一般用p转载 2016-08-26 09:23:32 · 251 阅读 · 0 评论 -
获取内置和外置存储路径
发现对手机存储卡名称更改时,适用6.0以下的,6.0手机sd卡挂载和内置SD卡路径获取出来和6.0一下有区别!true为获取sd卡路径,false为获取内置路径!以下时获取SD卡路径:private static String getStoragePath(Context mContext, boolean is_removale) {StorageManager原创 2016-07-01 09:41:31 · 1185 阅读 · 0 评论 -
修改第三方jar
1.去网上下载jd-gui对第三包进行破解! 2.在file->save all Sources中提出所有资源(注:一定要打开看里面的代码是否存在) 3.放在编译工具上进行编译,修改代码! 4.然后进行Rebulid project,然后在去bin中的classes目录下寻找到修改的类! 5.使用解压工具打开jar,进行替换既可!原创 2016-10-11 14:02:25 · 613 阅读 · 0 评论 -
Android 对5.0+的外置SD卡删除操作
#在4.4以上中,谷歌对其已经做了权限限制,为了规范SD卡操作!在推出后,引起业界一片吐槽,迫于压力,google推出了一种全新的方式去操作SD卡:Android SAF注: 一定要进行版本判断 一定要进行版本判断 一定要进行版本判断private static int DOCUMENT_TREE_REQUEST = 1; Intent intent = new Intent(Intent.原创 2016-09-23 10:56:06 · 4388 阅读 · 4 评论 -
Android SDK 之 InputMethodService 详解
http://www.cnmsdn.com/html/201003/1268842609ID2158.html 需要将一个现有的输入法移植到Android平台上去,根据以前的经验来看,Android还没有输入法框架的,开发成本非常高。所幸的是,在1.5版本之后,Android果断的开放了他的IMF,这给了我们很大的鼓舞。 要自己动手写一个输入法,入手的例子可以看他的Sample转载 2016-11-08 15:18:58 · 1259 阅读 · 0 评论 -
Retrofit简单尝试
#build.gradle依赖 compile 'com.squareup.retrofit2:retrofit:2.0.0-beta4' //Retrofit2所需要的包 compile 'com.squareup.retrofit2:converter-gson:2.0.0-beta4' //ConverterFactory的Gson依赖包 compile原创 2016-12-05 14:09:29 · 348 阅读 · 0 评论 -
recyclerview高度根据条目自适应
在app中的build.gradler中添加 compile 'com.android.support:recyclerview-v7:23.2.1'//然后在设置此属性即可,只有23以上的库有该方法 LinearLayoutManager layoutManager = new LinearLayoutManager(this); layoutManager.setAut原创 2017-05-02 14:18:24 · 11142 阅读 · 4 评论 -
RecyclerView 超简单item点击实现
最近一直在使用RecyclerView发现并没有item的点击监听,于是去百度,网上各种实现方式,于是自己进行研究,发现了一种超简单实现方案,我在想既然每一个item都是一个view,那是不是可以给每一个item添加一个父容器,然后赋予id,在viewholder中给其click监听,在让viewholder实现其接口!以下是代码实现class WinAadpter extends Recycler原创 2017-04-24 12:57:19 · 399 阅读 · 0 评论 -
DrawerLayout+CoordinatorLayout
"1.0" encoding="utf-8"?>.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/dl_原创 2018-01-17 14:57:14 · 1019 阅读 · 0 评论 -
透明状态栏
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { Window window = getWindow(); window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS | WindowManager.Layout原创 2016-08-26 08:56:36 · 189 阅读 · 0 评论 -
关于android6.0开发奇葩问题(收集中)
1:关于无法获得内存文件和数据在做文件管理器时,发现无法读取内置sd卡的数据,同时无法查询数据库中数据!后来发现是API 23 的办法,于是在手机设置中打开权限,一切搞定!2:关于ActionMode startActionMode=null问题:为了兼容权限问题,将版本基于22开发,然后修改了v7 v4 v13 的版本为22,交付测试后发原创 2016-07-01 09:40:13 · 971 阅读 · 0 评论 -
CountDownTimer倒计时实现
class MyCountDownTimer extends CountDownTimer { /** * * @param millisInFuture * 表示以毫秒为单位 倒计时的总数 * * 例如 millisInFuture=1000 表示1秒 * * @param countDownInterval原创 2016-08-23 14:29:16 · 322 阅读 · 0 评论 -
android 使用删除api已经无法删除问题
在做文件管理器时,产品交付测试发现在调用file.delete后,手机上文件已被删除,而使用usb打开手机内存,发现文件依旧存在!改问题是系统并没有刷新data数据而导致的!Intent media =newIntent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE,Uri.fromFile(file))mTabActivity.sendBro原创 2016-07-01 09:38:21 · 635 阅读 · 1 评论 -
android虚拟按钮问题
在最近搞项目时发现,不同的手机,对虚拟按钮的设置不同,而虚拟按钮是否占布局要进行测试!但是对于虚拟按钮占布局问题,现在有两种方案!一:false设置为false此方法需要最小在API 19已上二:在根布局文件中设置:android:fitsSystemWindows="true"(此方法并未测试)据说此方法会导致沉浸式菜单栏冲突!原创 2016-07-01 09:40:45 · 329 阅读 · 0 评论 -
关于actionMode 6.0适配问题
因为当时为了方便,在6.0使用了activity ,而非最新的appcompatactivity,所以导致在6.0的系统上,actionmode 在finsh时,会产生一个渐变动画,而非直接消失, 所以在分析问题和查阅资料后发现,此问题属于Material Design适配问题,对主题进行调整解决!加属性:true既可!原创 2016-07-25 09:08:24 · 371 阅读 · 0 评论 -
Android-Lint检查的潜在问题
转载地址:http://lxfgrace.iteye.com/blog/16936391.1问题描述-- Issue Android-Lint所要检查的问题以Issue来描述。 Issue分9类(Category):Correctness/ Correctness: Messages / Security / Performance / Usability: Typography转载 2016-07-26 11:38:40 · 337 阅读 · 0 评论 -
findbugs常见问题
6.1、 ES_COMPARING_PARAMETER_STRING_WITH_EQ ES: Comparison of String parameter using == or != (ES_COMPARING_PARAMETER_STRING_WITH_EQ)This code compares a java.lang.String parameter fo转载 2016-07-26 11:41:26 · 4270 阅读 · 0 评论 -
关于listview最后一项i遮盖问题
最近在做项目时:我们长按listview item条目,底部显示一个layout布局菜单,当长按最后一项,listview最后一项被挡!if (mFileListView.getLastVisiblePosition() == position) { handler.postDelayed(new Runnable() { @Override publi原创 2016-07-16 15:20:06 · 1055 阅读 · 0 评论 -
Android MediaScannerConnection,Android MediaScannerConnectionClient
本文转自严振杰的博客: http://blog.csdn.net/yanzhenjie1003在Android4.4之前我们保存图片到SD卡用发送广播形式通知系统扫描图片,可以在最近的图片中查看到:[java] view plain copy print?/** * 保存后用广播扫描,Android4.4以下使用这个方法转载 2016-07-16 11:17:43 · 2536 阅读 · 0 评论 -
跳到google paly应用代码
Intent intent = new Intent();intent.addCategory(Intent.CATEGORY_LAUNCHER);intent.setAction(Intent.ACTION_MAIN);intent.setComponent(new ComponentName("com.android.vending", "com.google.android.finsk原创 2016-08-15 18:13:04 · 497 阅读 · 0 评论 -
Android官方数据绑定框架DataBinding
转自:http://blog.csdn.net/qibin0506/article/details/47393725今天来了解一下android最新给我们带来的数据绑定框架——Data Binding Library。数据绑定框架给我们带来了更大的方便性,以前我们可能需要在Activity里写很多的findViewById,烦人的代码也增加了我们代码的耦合性,现在我们马上就可以抛弃转载 2016-08-05 14:38:44 · 331 阅读 · 0 评论 -
关于使用ActionMode做长按事件报空问题
在6.0奇葩问题中,我已经对此问题分析过了,但是并没有一个很好的解决方案,虽然开了开发版本,但是导致对于的开发版本已经会出现长按报null问题!最近在查看源码时发现,在分析ActionBarContextView类时发现,ActionMode初始化时走了initTitle()此方法!而当时长按报出的异常如下: java.lang.NullPointerException: At原创 2016-08-27 10:27:22 · 874 阅读 · 0 评论 -
关于SD卡兼容问题
# 最近发现,国内外机型SD卡路径问题简直时可怕,各种无法兼容,目前根据网上资料现已修改兼容一下-4.4,5.0,5.1,6.0版本,其中国内只测国5.1版本的,其他为国外机型,需要自测! String currentDir; String storagePath; // 6.0以上版本进行测试路径 if (Build.VERSION.SDK_INT >Build.VERSI原创 2016-08-29 20:43:14 · 1942 阅读 · 0 评论 -
关于android:windowIsTranslucent 属性问题与第一加载白屏问题!
在最近做兼容性测试时发现,在5.1 的系统中会出现一个闪屏问题!纠结好久,终于发现时主题引起的,然后最后分析找到android:windowIsTranslucent 属性!经过网上资料发现,此属性是让主题透明的属性,用来掩饰APP第一加载出现的白屏问题!后去网上下载各种App进测试,发现有三种解决方案!1:对主题中的windowBackground进行设置!如添加壁纸lo原创 2016-07-22 11:37:56 · 2546 阅读 · 0 评论