自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(29)
  • 收藏
  • 关注

原创 git相关命令

git cherry -v只能查看未传送提交的描述/说明git log master ^origin/master则可以查看未传送提交的详细信息 【git log 本地branch ^远程分支】git status //查看整体变更(详细到文件名)【该命令对比的是工作区和暂存区的文件。例如如果本地新增了一个文件且该文件已被commit到暂存区,虽然还没有push,此时调用git status...

2019-12-21 12:05:48 220

原创 Bitmap的getWidth和getHeight方法获取到的尺寸与实际尺寸不符的问题

将一张原始大小为2155*1233的图片放在drawable-xhdpi中,运行在模拟器上。该模拟器的相关参数如下:getResources().getDisplayMetrics().density:2.625getResources().getDisplayMetrics().densityDpi:420getResources().getDisplayMetrics().scaledD...

2019-12-07 10:55:33 2281

原创 父进程和子进程变量和文件的关系

子进程创建的时候,会从父进程继承一份全局变量,全局变量的值都是初始值。备注:不管是在修改全局变量之前还是之后创建的子进程,父进程对这些变量的修改都是不会同步到子进程中去的。子进程和父进程共享assets目录下的文件。子进程和父进程共享data/data/packagename/目录下的文件。备注:子进程和父进程共享私有目录下的文件,各自修改该目录下的文件都会影响到另一个进程。...

2019-10-19 12:22:08 799

转载 App冷启动的流程及优化处理

参考文章:https://blog.csdn.net/good_learning_it/article/details/58049277https://mp.weixin.qq.com/s/_6pulOeRmA-YVCcC2JfcLQhttp://www.sohu.com/a/192682221_608959https://www.ctolib.com/mip/topics-33344.h...

2019-10-17 12:08:38 1061

原创 安装apk时的那些事儿

1.assembleDebug命令如果build文件没有指定签名,会默认使用android的debug签名。如果build文件指定了则会使用build文件指定的签名文件签名,这样构建出来的apk可以安装。2.assembleRlease命令只会使用build文件指定的签名,如果没有配置则构建出来的apk不会签名,将导致在手机上安装失败。3.testOnly属性android studio...

2019-10-15 10:30:50 227

原创 Android 通知Notification

这篇文章并未详细介绍通知相关的api,而是作者自己对通知的一些大致总结,以便日后查看,请读者自行参考阅读~andorid关于通知在多个sdk版本中均有修改,因此部分api涉及到版本兼容的问题。编程中我们使用NotificationCompat来实现通知的相关功能。1.通知中添加按钮的方式Notification可以通过直接调Notification.Builder.addAction(in...

2019-09-05 15:55:49 935

原创 Android动画之Animation和Animator

Android 动画分为Animation和Animatior两大类。其中:Animation包括:逐祯动画,补间动画Animator包括:属性动画区别:Animation动画的作用对象只能是View,而Animator动画的作用对象可以是任何对象(这其中当然也包括View)下面详细说说各种动画:Animation:1.逐祯动画(AnimationDrawble)支持java和xml...

2019-08-16 15:21:22 928

原创 冒泡排序与简单排序算法实现

//简单选择排序算法 private void selectSort(int[] datas){ int length = datas.length; for(int i=0;i<length;i++){ int min = i; for(int j=i+1;j<length;j++){...

2019-03-28 20:29:01 6000

原创 Android访问系统文件在各个版本之间的适配

Android7.0 (N) 开始,将严格执行 StrictMode 模式,对文件系统将有更高的安全管理。从 Android N 开始,将不允许在 App 间,使用 file:// 的方式,传递一个 File ,否则会抛出 FileUriExposedException的错误,会直接引发 Crash。而是使用FileProvider,通过 content://的模式替换掉 file://。以下...

2019-02-21 17:54:39 866

原创 Android 文件相关的api说明

context.getFilesDir(): /data/data/packagename/filescontext.getCacheDir():/data/data/packagename/cachecontext.getExternalFilesDir(null):/storage/emulated/0/Android/data/packagename/filescontext.ge...

2019-02-21 11:08:31 760

原创 Listview使用CHOICE_MODE_MULTIPLE_MODAL实现多选模式

(参考博客:http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2014/1105/1906.html)ListView 使用CHOICE_MODE_MULTIPLE_MODAL进入多选模式的实现:界面很简单,有一个简单的显示文本的容器以及一个checkbox。实现的功能为:长按进入多选模式,进入多选模式后长按item、点击item、...

2018-04-09 14:51:38 708

原创 Statusbar和NavigationBar高度的获取

获取StatusBar和NavigationBar的高度

2018-04-09 11:30:09 861

原创 自定义Actionbar的相关说明

工作中我们经常会自定义ActionBar才能满足自己的需求,这不,小编就到了该自定义actoinbar的时刻,可是在实现过程中并非一帆风顺(黑人无辜脸^-^)…… 写这篇博客就是为了记录下自己曾经遇到的坑,以便日后重蹈覆辙。要自定义ActionBar其实是有三个思路的: 1.当前Activity的主题设置为NoTitleBar,然后将自定义的actionbar布局作为activity...

2018-04-09 10:56:45 349

原创 Webview漏洞的说明

Webview在增加app功能与体验性的同时也我们带来了安全隐患,作为一名程序猿,保证app的信息安全是我们的职责。因此这篇文章可能对你了解webview的安全隐患有一定的帮助,赶快来看看吧……

2018-02-06 14:47:09 361

原创 在手机桌面隐藏App的Icon并启动该App

在手机桌面隐藏App的Icon并启动该App

2018-01-19 18:10:09 2777 2

原创 系统自带导航栏的注意事项

发现了根本原因是:手机系统的导航栏将底部的菜单栏遮住了,因为它们的高度又差不多,所以给人菜单栏没有显示了的错觉。出现这个问题是因为在当前主题下,系统导航栏也被加入进了我们的视图之中。针对这个问题的解决方案就是在style.xml文件中当前的主题下增加一个属性:android:windowDrawsSystemBarBackgrounds为false

2017-12-04 15:33:21 426

转载 Android 7.0与6.0多语言效果对比以及遇到的坑

(一)Android 6.0中语言设置界面在Android 6.0及以前的语言设置都是单一的语言,只能选一种语言(二)Android 7.0的语言设置界面在Android 7.0开始允许用户在设置的语言配置中选择多个语言设置

2017-11-24 13:09:54 1676

原创 Android 多语言支持

在Android 6.0的系统用户只能选择某一种语言,但是在Android 7.0的系统及以上,用户可以设置语言列表,如图: Andorid 7.0以前,在获取系统当前语言时有以下2种方法://获取 Locale 的方式有二 //方式一Locale locale = getResources().getConfiguration().locale; //方式二Locale locale =

2017-11-24 12:14:01 664

原创 多线程之间的同步问题

在多线程中经常使用到sleep()、wait()、notify()、notifyAll()方法,有几点需要注意:1、sleep()是属于Thread类中的,而wait()、notify()、notifyAll()则是属于Object类中的;2、sleep()调用后程序会暂停执行指定的时间,让出cpu资源给其他线程,但是他的监控状态依然保持着,不会释放锁,当指定的时间到了又会自动恢复运行状态。

2017-08-17 11:18:23 649

原创 Android页面的跳转方式

Android页面跳转有2种方式:显式跳转和隐式跳转。

2017-07-21 17:53:34 1463

原创 RadioGroup和RadioButton解析,以及它们的监听器

RadioGroup类其实已经为添加在其中的每一个RadioButton的成员变量mOnCheckedChangeWidgetListener赋值了,即为RadioButton设置了内部使用的OnCheckedChangeListener。RadioButton继承于CompoundButton,它与CheckBox的区别是不能通过点击自己在选中与未选中状态之间切换,但是CheckBox可以。

2017-07-12 18:09:13 3369

原创 不同版本的适配及Material Design

关于适配有很多种方案: 1.在代码中根据不同的版本,通过if语句判断,不同的版本调用不同的api2.如果确定某一个方法只会在某一个版本及以上的Android设备上被调用则使用TargetApi注解3.新建不同的文件夹如drawable-v21、layout-v22、values-v21,然后在里面写不同的文件如style.xml 或者activity.xml ,这样Android设备会根据当前运行

2017-05-12 17:56:52 920

原创 Andorid tint属性及如何使用tint实现Selector效果

偶然接触到Android 控件的tint这一属性,之前一直没有用过,所以非常感兴趣,便花了点时间研究了下。tint 译为着色。tint一般与tintMode配合使用。 同时还有backgroundTint和backgroundTintMode属性(很明显backgroundTint是针对背景色着色,通过实践也证实了backgroundTint只有在为控件设置了background属性才会生效。)ti

2017-01-18 17:40:29 8652

原创 使用BroadCast实现进程间通信以及静态注册和动态注册广播的区别

Android中,一般情况下一个应用程序是一个独立的进程。而进程之间的内存是不可见的,那么进程间如何通信呢? 其中一种实现方式便是通过广播来实现。这种方式实现方式的特点是被动通信,因为只能发送方发送广播,接收方被动的接收广播。下面通过代码来具体讲解其具体实现方式:1.首先写发送广播的应用程序:(这个程序的功能很简单:点击界面上的按钮发送一个Action为“android.intent.action

2017-01-05 11:21:02 3157 2

原创 初识onWindowFocusChanged(boolean hasFocus)

之前对于Activity只关心它主要的生命周期函数,如onCreate()、onStart()、onResume()等,忽略了onWindowFocusChanged(boolean hasFocus)这个方法的存在。但是在后来的学习中才逐渐了解到onResume()表示的是Activity处于运行期这样一种状态,它只是表示一种状态,而onWindowFocusChanged()则表示当前Activ

2016-12-26 21:54:44 750

原创 Android App优化

1.UI方面 1)使用ViewStub来动态填充布局 2)inflate花费的时间不少,有时候比一些逻辑代码的时间还多 3)getIdentifier(String name, String defType, String defPackage)花费的时间也不少2.逻辑代码 1)操作数据库

2016-12-21 16:25:55 351 2

原创 Android实现状态栏和标题栏的风格一致

在简书上看到一篇文章,内容也是关于设置app状态栏和标题栏的颜色设置,感兴趣的可以去看看:http://www.jianshu.com/p/34a8b40b9308这里只简单说明下我的实现方式:1.在MainActivity的onCreate()里面将状态栏设置为透明的:getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_

2016-09-23 17:05:32 824

原创 使用Android Studio多模块开发

项目中使用多模块开发可以有助于各个功能模块分开,方便开发人员的开发和维护。 这篇文章简要介绍下自己摸索的多模块开发的心得。首先新建一个Project,我的项目名称是:MutipleModule。这里大家应该都知道,所以不多说。项目结构截图如下:其次点击项目右键,选择New—>Module然后会弹出一个选择“添加哪一种类型的Module”的界面,这里我们选择Android Library,然后设置自

2016-09-09 18:39:10 3635 2

原创 IntentService用法解析

**IntentService简要分析**众所周知,service可以用来执行后台任务。但是我们不能把类似下载等这样的耗时任务直接放在service里面执行,否则会造成ANR。一般遇到这样的情况我们有两种处理方式:1.自己创建并管理线程来执行这些耗时操作2.通过IntentService实现。这里通过模拟耗时任务的方式来简单介绍下IntentService的实现方式:第一步:写一个IntentSer

2016-09-04 20:48:16 447

空空如也

空空如也

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

TA关注的人

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