android
逆风Lee
这个作者很懒,什么都没留下…
展开
-
Android Jetpack一: 什么是Jetpack
简介Jetpack是一套库、工具和指南,可以帮助开发者更轻松地编写优质应用。这些组件可以帮助开发者遵循最佳做法、让开发者摆脱编写样板代码的工作并简化复杂任务,以便开发者将精力集中放在所需的代码上。特性1. 加速开发组件可以单独采用(不过这些组件是为协同工作而构建的),同时利用Kotlin语言功能帮助开发者提高工作效率。2. 消除样板代码Android Jetpack可管理繁琐的Activity(如后台任务、导航和生命周期管理),以便开发者可以专注于如何让自己的应用出类拔萃。3. 构建高质量的.转载 2021-02-08 10:01:03 · 502 阅读 · 2 评论 -
git使用记录5: Git解决本地修改后冲突了无法从远端pull的方法
有时在我们本地修改了部分文件后需要提交代码,这时需要先从远端把代码拉下来(pull),如果你修改的内容跟远端库的修改冲突了,则用git的图形界面用pull操作是无法操作的,这时我们需要用命令行(git bash)的方式来完成代码的更新。1、git status先看下自己修改的文件是哪些;2、git stash用这个命令先把代码缓存起来;3、git pull这时再用pull命令把远端的代码拉下来;4、git stash pop远端代码拉回来后再用这个命令把放到缓存中的代码强行merge转载 2020-11-03 13:06:16 · 584 阅读 · 0 评论 -
纪录成长的点点滴滴
开通blog,只为纪录成长的点点滴滴!原创 2014-10-15 11:33:51 · 688 阅读 · 0 评论 -
Android框架模式(1)-MVP入门
转载自远古大钟的博客(http://blog.csdn.net/duo2005duo)简介MVP是MVC的衍生版本,跟MVC类似,但是在Android中更适用,也分三层: Model:用于数据的增删改查等,也包括一些数据对象 View:用于界面的显示与用户操作的接收,在Android里面View通常就是Actvitiy,Fragment。 Presenter:是V转载 2016-05-14 12:50:51 · 603 阅读 · 0 评论 -
Android -static变量的生命周期
Android是用Java开发,其静态变量的生命周期遵守Java的设计。静态变量是在类被load的时候分配内存的,并且存在于方法区。当类被卸载的时候,静态变量被销毁。在PC机的客户端程序中,一个类被加载和卸载,可简单的等同于jvm进程的启动和结束。那么在Android中呢?用的Dalvik vm也是一样的。不过Android不太突出的进程概念,所以对静态变量的生命周期就会感觉模糊,这种模糊对于值类转载 2016-07-23 15:06:05 · 828 阅读 · 0 评论 -
myPid() 和 myUid() 的区别
PID:为Process Identifier, PID就是各进程的身份标识,程序一运行系统就会自动分配给进程一个独一无二的PID。进程中止后PID被系统回收,可能会被继续分配给新运行的程序,但是在android系统中一般不会把已经kill掉的进程ID重新分配给新的进程,新产生进程的进程号,一般比产生之前所有的进程号都要大。UID:一般理解为User Identifier,UID在li转载 2016-07-23 16:39:42 · 2760 阅读 · 0 评论 -
Android LayoutInflater详解
在实际开发中LayoutInflater这个类还是非常有用的,它的作用类似于findViewById()。不同点是LayoutInflater是用来找res/layout/下的xml布局文件,并且实例化;而findViewById()是找xml布局文件下的具体widget控件(如Button、TextView等)。具体作用:1、对于一个没有被载入或者想要动态载入的界面,都需要使用L转载 2016-08-01 10:12:30 · 310 阅读 · 0 评论 -
浅谈Java中的hashcode方法
浅谈Java中的hashcode方法 哈希表这个数据结构想必大多数人都不陌生,而且在很多地方都会利用到hash表来提高查找效率。在Java的Object类中有一个方法:1public native int hashCode(); 根据这个方法的声明可知,该方法返回一个int类型的数值,并且是本地方法转载 2016-08-01 15:00:42 · 303 阅读 · 0 评论 -
ArrayList,Vector,HashMap,HashSet,HashTable之间的区别与联系
看上面的框架图,先抓住它的主干,即Collection和Map。1 Collection是一个接口,是高度抽象出来的集合,它包含了集合的基本操作和属性。Collection包含了List和Set两大分支。(01) List是一个有序的队列,每一个元素都有它的索引。第一个元素的索引值是0。List的实现类有LinkedList, ArrayList, Vector, Stac转载 2016-08-01 15:21:20 · 460 阅读 · 0 评论 -
停止Java线程,小心interrupt()方法
转自http://www.blogjava.net/jinfeng_wang/archive/2008/04/27/196477.html 程序是很简易的。然而,在编程人员面前,多线程呈现出了一组新的难题,如果没有被恰当的解决,将导致意外的行为以及细微的、难以发现的错误。 在本篇文章中,我们针对这些难题之一:如何中断一个正在运行的线程。 背景 中断(Interrupt转载 2016-09-09 10:29:59 · 262 阅读 · 0 评论 -
软键盘输入法操作相关(持续更新中)
1.判断软键盘是否显示:InputMethodManager imm = (InputMethodManager) context.getSystemService(context.INPUT_METHOD_SERVICE);imm.isActive();2.关闭软键盘:InputMethodManager imm = (InputMethodManager) getSys原创 2016-09-05 14:06:26 · 407 阅读 · 0 评论 -
isShown和inVisible的区别
View的isVisible是查看当前view的可见状态,有Visible,gone,invisible三种状态,isShown是查看当前View是否能被看到,这个里面处理查看自身的可见状态是否为visible以外,还要查看父控件的可见状态,查看源码: public boolean isShown() { View current = this;原创 2016-09-22 14:34:56 · 4681 阅读 · 0 评论 -
android 5.1及以上获取正在运行的app(top app)
1.android 5.0以下:((ActivityManager.RunningAppProcessInfo)((ActivityManager)paramContext.getSystemService("activity")).getRunningAppProcesses().get(0)).processName;2.android 5.0:((Activi转载 2016-10-04 17:27:39 · 3305 阅读 · 0 评论 -
基于dialog的可移动的自定义键盘
因为android原生键盘很大,当键盘显示的时候,会遮住大部分的界面,有时候还会使界面移动(当Edittext在界面偏底部的时候),所以项目需要使用自定义键盘,看了系统源码,发现android原生键盘使用的是dialog构建键盘,所以决定用dialog,思路是这样: 1.建一个键盘的layout(keyboard.xml),自定义一个单例模式的dialog(keyboard.java原创 2017-01-04 16:50:11 · 523 阅读 · 0 评论 -
Android权限总结
最近使用android6.0开发项目,碰到权限问题,android6.0(api23)以后google为了用户安全,对权限机制做了改变,我觉得有必要总结下, android的权限分两种,一种是普通权限(Normal Permissions),一种是敏感权限(Dangerous Permissions),1.普通权限如下:原创 2017-01-05 15:57:27 · 568 阅读 · 0 评论 -
Android版本,名称和API level对应关系,已经最新的android各版本的市场份额
以下是最新的Android版本,名称和API level的对应关系(2017年1月11日): 平台版本API 级别VERSION_CODEAndroid 7.024NAndroid 6.023MAndroid 5.122LOLLIPOP_MR1原创 2017-01-11 10:02:37 · 650 阅读 · 0 评论 -
Activity之间的切换问题
今天被问到一个Activity之前切换的问题,有4个Activity(A,B,C,D),从A切换到B,B切换到C,C切换到D,然后D上面有按键要切换到A或者C。 这个涉及到Activity laungchMode的知识点,一个方法是把Activity设置为singleTask模式,另一个方法是在D切换到A或者C的时候设置intent flag: intent.addFla原创 2017-02-09 15:15:56 · 365 阅读 · 0 评论 -
Android studio之代码注释
日子不是用来混的 要想成为一个优秀的编程人员,需要养成好的编程习惯,代码注释就是一个很好的编程习惯,做好代码注释可以让团队其他成员看懂你写的代码,并且自己在回看自己代码的时候,可以松的看懂。下面来介绍下Android studio增加快捷代码注释的方法: 1.进入File -> Settings ->Editor ->Live Templates,点击原创 2017-01-20 09:21:07 · 1532 阅读 · 0 评论 -
关于按钮layout_gravity设置为right不管用的问题
对于 LinearLayout 当 android:orientation=”vertical” 时, 子组件只有水平方向的设置才起作用,垂直方向的设置不起作用。即:left,right,center_horizontal 是生效的。当 android:orientation=”horizontal” 时, 子组件只有垂直方向的设置才起作用,水平方向的设置不起作用。即:top,bo转载 2017-02-13 16:22:42 · 558 阅读 · 0 评论 -
Android学习之如何配置使用Android studio的terminal
本来转载自:http://blog.csdn.net/qq_16131393/article/details/51153676相信大家对命令行都很熟悉,但是每次在开发Android过程中使用命令行每次都打开命令行面板未免又太麻烦,所以在Android studio中配置了命令行面板terminal很多大胸帝可能也知道它,但是在输入adb时会发现经常出现:adb不是内部或外部命令,也不是可运转载 2017-02-22 10:59:24 · 354 阅读 · 0 评论 -
android Monkey的使用详解
最近在研究android Monkey自动化测试。一.Monkey测试简介Monkey测试是Android平台自动化测试的一种手段,通过Monkey程序模拟用户触摸屏幕、滑动Trackball、按键等操作来对设备上的程序进行压。二.Monkey原理monkey功能是android系统自带的,是一个jar包,存放在android文件系统的目录是:/system/frame原创 2016-07-22 15:40:37 · 680 阅读 · 0 评论 -
android EditText字符下面出现红色下划线
使用EditText的时候,有时候字符串会出现红色下划线,解决方法是:把EditText的inputStyle由text改成: android:inputType=”textNoSuggestions”转载 2017-04-07 11:13:50 · 5416 阅读 · 1 评论 -
你真的了解 Instant Run 吗?
本文转载自http://blog.csdn.net/guolin_blog/article/details/51271369今天是周二,又轮到我写文章了。先扯点题外话,我是2010年8月份开始自学Android的,到现在已经快有6年的时间了。当时为了自学我专门买了一本书,叫《Android高级编程》,作者是Reto Meier,这本书现在仍然还在我的书架上,这是我刚拍的一张略显陈旧的照片:转载 2017-03-22 09:44:57 · 219 阅读 · 0 评论 -
android TextView实现多种颜色显示
设计中TextView里面的字体有时候需要设置不同的颜色,来达到提示的目的,总结有以下几种方法:方法一: 使用SpannableStringBuilder TextView textView=(TextView)findViewById(R.id.text_show); SpannableStringBuilder style原创 2017-03-29 14:49:22 · 1516 阅读 · 0 评论 -
对android中ActionBar中setDisplayHomeAsUpEnabled和setHomeButtonEnabled和setDisplayShowHomeEnabled方法的理解
setHomeButtonEnabled这个小于4.0版本的默认值为true的。但是在4.0及其以上是false,该方法的作用:决定左上角的图标是否可以点击。没有向左的小图标。 true 图标可以点击 false 不可以点击。actionBar.setDisplayHomeAsUpEnabled(true) // 给左上角图标的左边加上一个返回的图标 。对应Action转载 2015-05-02 16:42:26 · 726 阅读 · 0 评论 -
Android使用getIdentifier()获取资源Id
项目中资源(图片,字符,id,style,attrs等)有时候只是同一个名字加序号的组合,如图片资源:texture1,texture2,texture2,……这时候可以使用sdk提供的方法getIdentifier()获取相应的id,有以下两种方式:方法一:getIdentifier(),第一个参数:包名:资源文件夹名/资源名称,第二和第三个参数为null int i原创 2017-03-30 18:34:25 · 1915 阅读 · 0 评论 -
Gradle实现的两种简单的多渠道打包方法
本文转载自:http://blog.csdn.NET/maosidiaoxian/article/details/42000913目前我掌握的方法有两种,都非常简单,用的都是Gradle Android插件里的productFlavors。以友盟的多渠道打包为例,假设我们需要打包出如下渠道:UMENG, WANDOUJIA, YINGYONGBAO。第一种方法:转载 2017-04-10 10:48:17 · 306 阅读 · 0 评论 -
Android获取Manifest中<meta-data>元素的值
android 开发中: 在AndroidManifest.xml中,元素可以作为子元素, 被包含在、 、和元素中,不同的父元素,在应用时读取的方法也不同。 1 :在Activity应用元素。 xml代码段: java代码段:ActivityInfo info=this.getPackageManager()转载 2017-04-10 10:53:27 · 397 阅读 · 0 评论 -
Android运行异常一:token android.os.BinderProxy@438e7108 is not valid; is your activity running?
今天项目发现异常:Android.view.WindowManager$BadTokenException: Unable to add window — token android.os.BinderProxy@438e7108 is not valid; is your activity running? 发现使用了单例模式创建了一个dialog,使用了activity作原创 2017-04-10 22:24:49 · 4732 阅读 · 0 评论 -
Android stutio layout预览错误(Rending Problems)
在Android studio layout预览的时候发现一些错误:问题一: Rendering Problems The following classes could not be instantiated: - com.tomra.trsort.ui.view.KeyboardEditText (Open Class, Show Exception, Clear原创 2017-04-01 16:22:23 · 1150 阅读 · 1 评论 -
android:configChanges
在Android中每次屏幕的切换动会重启Activity,所以应该在Activity销毁前保存当前活动的状态,在Activity再次Create的时候载入配置。在activity加上android:configChanges="keyboardHidden|orientation"属性,就不会重启activity.而只是调用onConfigurationChanged(Configuration转载 2017-04-01 21:06:52 · 235 阅读 · 0 评论 -
Android shape使用总结
一.shape画圆:<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="oval" android:useLevel="false" > <padding android:left="2dp" android:top="1dp"原创 2017-04-15 16:02:56 · 343 阅读 · 0 评论 -
Android LayoutParams使用总结
动态修改layout属性的时候使用LayoutParams一.如新建一个Button:Button btn = new Button();btn.setLayoutParams(new LinearLayout.LayoutParams(width, height));里面的width和height可以为 1.LayoutParams.MATCH_PARENT原创 2017-04-15 16:25:54 · 549 阅读 · 0 评论 -
android图片处理之一:ImageView的scaleType属性
转载直http://blog.csdn.net/u012702547/article/details/50586946。 我们知道,ImageView有一个属性叫做scaleType,它的取值一共有八种,分别是:matrix,fitXY,fitStart,fitCenter,fitEnd,center,centerCrop,centerInside。那我们下面一起来看看这八转载 2017-05-01 12:10:36 · 515 阅读 · 0 评论 -
Android一些过时的(Deprecated)方法取代
1.ViewPager的setOnPageChangeListener,新方法:addOnPageChangeListener持续更新中……原创 2017-05-01 12:16:13 · 7430 阅读 · 1 评论 -
Android写SD卡或者U盘不成功问题
用FileOutputSteam写U盘或者SD卡,写完立即拔出U盘会发现有时候写操作不成功,这是因为在写U盘或者SD卡的时候,系统会通过另外一个进程去把数据sync到U盘上,如果文件较大,需要的时间比较多,如果这时候拔出U盘,就会出现数据未写完全的问题,所以在FileOutputSteam close之前可以使用先进行sycn的动作: File file = ne原创 2017-05-03 11:30:46 · 975 阅读 · 0 评论 -
Android实现两个ScrollView同步滚动的效果
有时候为为了实现比较功能,需要在一个屏幕里面设置两个ScrollView,当其中一个滚动的时候,另外一个也需要跟着滚动,可以通过重写ScrollView中的方法:protected void onScrollChanged(int x, int y, int oldx, int oldy)来实现。 扩展ScrollViewpublic class BindableScrollView extend原创 2017-06-17 09:46:59 · 2153 阅读 · 0 评论 -
Android NDK笔记3-JNI的数据类型
转账自:http://blog.csdn.net/mynameishuangshuai/article/details/52584713Java中有两种数据类型,分别是基本数据类型和引用类型。JNI基本数据类型java的基本数据类型可以直接与C/C++的响应基本数据类型映射:这些基本数据类型可以在Native层直接使用。JNI引用类型与基本数据类型不同,引用类型对原生方法是不透明的,它们的内部数据结原创 2017-06-17 16:31:13 · 626 阅读 · 0 评论 -
Android屏幕控制一:强制竖屏横屏
默认情况下,app会随着手机方向的改变进行屏幕切换,手机横向摆放的时候,app屏幕就会切换到横屏,反之切换到竖屏,但是app是一般都是根据竖屏设计的,一旦切换到横屏,布局就会乱掉,所以没有考虑横屏设计的app一般要强制设置为竖屏,强制竖屏有两种方法: 一.在AndroidManifest.xml对每个Activity进行配置:<activity android:name="com.barilab原创 2017-06-07 14:43:39 · 40412 阅读 · 3 评论 -
Gradle实现不同的applicationId
有时候一个app需要不同的包名,利用Gradle配置可以轻松配置,在主项目的build.gradle里面增加productFlavors的设置: productFlavors { yingyongbao { applicationId "com.barilab.katalksketch.googlemarket" } qihu原创 2017-06-08 18:14:32 · 1057 阅读 · 0 评论