![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
android经验分享
镰刀出海
关注镰刀出海公众号,了解出海知识;关注知识星球:出海产品记,交流出海经验和问题。
展开
-
Google Play和admob最近比较重要的政策更新
说起Google play的政策,大家都知道向来以严格著称,并且对于违反政策的开发者的处罚也是相当严厉的。笔者接触google play应用市场已经有两年多了,对于他们的政策虽然不是百分百清楚,但是对于他们的处罚,那是已经领教过了的。所以,我希望通过这篇文章向大家介绍下google play以及admob最近几个月的重大更新,其中三项是涉及到所有开发者的,还有一项涉及的是金...原创 2019-09-15 18:15:44 · 1575 阅读 · 2 评论 -
google应用商店相关工具
1、直接在电脑上下载googleplay上的应用,仅限免费的app:https://apps.evozi.com/apk-downloader/2、google开发者注册地址 https://play.google.com/apps/publish/signup/原创 2016-12-21 15:52:01 · 893 阅读 · 0 评论 -
setKeyListener(KeyListener)方法的妙用
TextView类的setKeyListener(KeyListener)方法;其中DigitsKeyListener类,使用getInstance(String accepted)方法即可指定EditText可输入字符集原创 2016-12-26 11:52:12 · 6256 阅读 · 0 评论 -
android design 取消appbarlayout 默认的阴影
在appbarlayout中,设置app:elevation="0dp"即可,android:elevation="0dp"不起作用,这个是兼容库的。原创 2016-12-25 21:39:31 · 1513 阅读 · 0 评论 -
Android Studio Monkey测试
打开Android Studio的终端“Terminal”输入命令 adb shell -p xxx.xxx.com -v 1000 > /xxx/xxx/monkeylog.txt -p 后面的“xxx.xxx.com”为你安装在手机或模拟器上的要进行Monkey测试的APP包名 -v 表示模拟多少次事件进行测试 > 后面的路径为将此次测试的原创 2016-11-19 09:51:12 · 539 阅读 · 1 评论 -
AndroidStudio打包apk出现的问题 `Error:Execution failed for task ':app:lintVitalRelease'
打包的时候出现如下错误:Lint found fatal errors while assembling a release target. To proceed, either fix the issues identified by lint, or modify your build script as follows: … Android { lintOptions {原创 2016-12-09 19:23:03 · 7573 阅读 · 0 评论 -
android 判断当前线程是不是主线程的几种方法
方法一:public boolean isMainThread() { return Looper.getMainLooper() == Looper.myLooper();}123123方法二:public boolean isMainThread() { return Looper.getMainLooper().getThread() == Thread.c原创 2016-12-08 17:42:11 · 1680 阅读 · 1 评论 -
android 如何正确循环删除list中的数据
当我们使用for循环删除列表中的数据的时候,会存在问题,因为ArrayList的父类AbstractList里有个modCount的字段记录着List的总数,for循环的时候如果增加或者删除了元素,(修改不会影响),此字段会变化,那么在下次for循环的时候检查到跟之前的长度不同,此时会报ConcurrentModificationException异常。解决方法如下:Iterato原创 2016-11-24 18:49:05 · 7158 阅读 · 0 评论 -
Dialog弹出的时候,禁止点击外部消失和禁用返回键
dialog默认点击外部的时候,dialog消失,使用setCanceledOnTouchOutside(false);即可实现点击外部不消失。setOnKeyListener,这个方法可以禁用返回键。原创 2016-12-06 21:01:06 · 9109 阅读 · 2 评论 -
bugly镜像地址,可以下载android sdk的插件
http://android-mirror.bugly.qq.com:8080/android/repository/配置地址:http://sunjiajia.com/2015/08/16/tencent-bugly-android-sdk-mirror/原创 2017-01-13 18:35:27 · 3118 阅读 · 0 评论 -
android 部分手机横竖屏activity重启问题
部分手机上设置activity的 android:screenOrientation="portrait" 以后,并没有起到作用,acitivty在横屏的时候还是会重启,这个时候,我们可以做如下设置:android:configChanges="keyboardHidden|orientation|screenSize"这里,screenSize必须要加上,否则还是会重原创 2017-01-17 15:52:33 · 408 阅读 · 0 评论 -
在windows系统中设置JVM(Java虚拟机)的内存
除了在web容器中设置虚拟机内存的大小,我们还可以为windows系统设置统一的虚拟机内存,如果一台服务器上面部署了多个web容器,我们就可以只设置一个地方,从而提高维护效率。那么如何配置呢,请看如下步骤: 1,打开windows系统环境变量 2,在系统变量中,新建变量JAVA_OPTS,值设置为 -Xms1024M -Xmx2048M -XX:PermSize=256M -XX:转载 2017-02-23 10:25:42 · 3417 阅读 · 0 评论 -
将近三十岁的你,该做一个什么样的副业
这两天看到一位大牛谈到副业,文章中说了他是如何把副业做成了主业,甚至是一个事业的事情,我想这个也是当下的一个趋势吧。毕竟现在的情况不是我们小时候认为的那样,只要多劳就会多得,现在真的是知识时代。靠脑力挣钱的比靠体力挣钱的要多得多,作为在职场打拼了数年的上班族,作为白领,感觉也不是那么轻松,这种压力来源主要是收入和支出的比例。一份像样的工作,可能会有不错的收入,但是现在的商品...原创 2019-09-12 14:29:24 · 825 阅读 · 0 评论 -
独立开发者怎么做出海产品
首先介绍下自己,我是一名Android开发者,这个公众号是几年前就开始写了,中间大概有两年时间没写了,这段时间主要是因为我把时间都花在了怎么做出海产品上了。我成为一名独立开发者的时间不长,大概三个多月的时间,但是我做出海产品的时间可不止三个月。至于我为何做出海产品,又是怎么坚持到现在的,以及做出海产品是否有收入,这个放到一次再具体介绍。今天我想告诉大家的是,怎么做出海产品。...原创 2019-09-07 16:39:38 · 798 阅读 · 0 评论 -
在ViewPager中的Fragment在各种状态下的生命周期
(感谢hdszlk的实测)1.一直以来的疑问Fragment在ViewPager到底经历了哪些生命周期方法?到底发生了什么?常会TabLayout和ViewPager配合起来使用,针对这套组合,就想也做一些学习了解。在一个ViewPager中经常会存在多个Fragment,Fragemnt在ViewPager中的生命周期一直没有闹明白。这周正好在测试Api的时候又用到了Ta转载 2017-05-25 11:36:41 · 781 阅读 · 0 评论 -
使用okhttp设置https
鸿祥的博客,连接地址http://blog.csdn.net/lmj623565791/article/details/48129405讲的很详细,需要的可以去看看转载 2017-02-15 18:54:11 · 2253 阅读 · 1 评论 -
Android Volley 之自定义Request
转载出处:http://blog.csdn.NET/lmj623565791/article/details/24589837Volley的所有的请求的超类型是Resuest,类结构如下图,所有我们常用的请求都是这个类的子类,那么我们自定义Request肯定也是基于这个类的。一些简单的用法实例:[java] view pl转载 2017-02-23 17:06:11 · 323 阅读 · 0 评论 -
JS与WebView交互存在的一些问题
转自简书,如有侵权,请告知删除。转自http://www.jianshu.com/p/93cea79a2443著作权归作者所有,转载请联系作者获得授权。一、背景概述2013年Android平台暴露出WebView漏洞。利用该漏洞,攻击者可以通过存在风险的addJavascriptInterface接口函数提供的扩展穿透webkit执行本地Java代码,造成恶意代码在受害转载 2017-02-23 16:45:14 · 399 阅读 · 0 评论 -
gradle多渠道打包替换图片、xml等资源文件
用gradle多渠道打包一般在build.gradle文件里面,productFlavors 标签下添加自己的渠道名,像下面这样android { productFlavors { "xiaomi"{ manifestPlaceholders = [channelName: "xiaomi"] } "360market"{ man转载 2017-02-23 16:01:53 · 745 阅读 · 0 评论 -
Activity和Fragment之间传递数据的方法
1、第一种方式,也是最常用的方式,就是使用Bundle来传递参数 MyFragment myFragment = new MyFragment(); Bundle bundle = new Bundle(); bundle.putString("DATA",values);//这里的values就是我们要传的值 myFragment.setArg转载 2017-02-23 15:45:10 · 941 阅读 · 0 评论 -
Android子线程创建Handler方法
如果我们想在子线程上创建Handler,通过直接new的出来是会报异常的比如:[java] view plain copynew Thread(new Runnable() { public void run() { Handler handler = new Handler()转载 2017-02-23 14:19:02 · 4918 阅读 · 0 评论 -
自定义view的时候,执行了invalidate()方法后 onDraw()不被调用的解决方法
如果在调用invalide方法没有刷新view的时候,可以采用刷新父布局的方式:((View)view.getParnet()).invalidate();或者用另外一个方法:view.invalidate();view.forceLayout();view.requestLayout();这样会强制刷新view的原创 2016-11-04 09:41:55 · 10889 阅读 · 1 评论 -
android sql特殊字符转义处理方法
1.sqlite中的转义符SELECT * FROM table WHERE number LIKE '%/%%' escape '/' sqlite3数据库在搜索的时候,一些特殊的字符需要进行转义, 具体的转义如下: [java] view plain copypublic static String sql原创 2016-11-17 19:50:09 · 2107 阅读 · 0 评论 -
android 白屏问题或者设置页面的闪屏
app启动的时候会出现白屏现象,有的是因为页面初始化比较耗时,页面还没有加载出来,默认主题的背景色是白色或者黑色,这个时候只需要在activity的主题style中添加下面的元素就可以了loading为你自己的启动页图片item name="android:windowBackground">@mipmap/loadingitem>原创 2016-10-24 14:24:52 · 491 阅读 · 0 评论 -
opengl shader内置变量和函数
1、uint CreateShader(enum type) : 创建空的shader object; type: VERTEX_SHADER,2、void ShaderSource(uint shader, sizeicount, const **string, const int *length):加载shader源码进shader object;可能多个字符串3、转载 2016-10-26 15:48:12 · 7979 阅读 · 0 评论 -
android 生成key hashes的方法
使用如下命令即可获取到keystore的相关信息,其中28位的即为key hasheskeytool -exportcert -alias YOUR_RELEASE_KEY_ALIAS -keystore YOUR_RELEASE_KEY_PATH | openssl sha1 -binary | openssl base64原创 2016-11-08 10:49:46 · 1357 阅读 · 0 评论 -
ActivityLifecycleCallbacks的使用
android4.0+的系统,新增了一个接口ActivityLifecycleCallbacks,用于监听应用中所有Activity的运行情况。registerActivityLifecycleCallbacks是Application的一个接口,注册之后应用里的所有activity的生命周期都会被监控起来,我们可以在此接口方法里实现一些特殊的需求。比如统计用户对每个Activity使用情况,或者原创 2016-11-07 16:10:50 · 461 阅读 · 0 评论 -
运行进程中参数IMOPORTANCE的几个参数值的含义
RunningAppProcessInfo 里面的常量IMOPORTANCE表示app进程的重要性,因为系统回收时候,会根据IMOPORTANCE来回收进程的。IMOPORTANCE的取值如下:public static final int IMPORTANCE_BACKGROUND = 400//后台public static final int IMPORTANCE_EMPTY原创 2016-11-07 16:03:56 · 512 阅读 · 0 评论 -
国家语言参考表
国家/地区语言代码国家/地区语言代码简体中文(中国)zh-cn繁体中文(台湾地区)zh-tw繁体中文(香港)zh-hk英语(香港)en-hk英语(美国)en-us原创 2016-11-04 15:27:50 · 535 阅读 · 0 评论 -
关于Recyclerview的NO_POSITION问题解决方法
getAdapterPosition(),findViewHolderForAdapterPosition(int),当及时一些数据可能没有来得及被展现到布局上时便需要获取最新的adapter位置可以使用这些相关的方法。例如,如果你想获取一个条目的ViewHOlder的click事件时,你应该使用getAdapterPosition()。需要知道这些方法在notifyDataSetChange()原创 2016-11-04 15:08:50 · 2454 阅读 · 0 评论 -
android 跳转到浏览器打开指定页面
跳转到浏览器并打开指定页面的语句如下:Uri uri = Uri.parse("https://www.baidu.com"); Intent intent = new Intent(Intent.ACTION_VIEW, uri); startActivity(intent);原创 2016-10-24 15:42:01 · 21004 阅读 · 0 评论 -
Material Design相关信息收集
1、标题栏的高度默认是56dp,2、内容距离左右屏幕边框的距离默认是16dp,3、转载 2016-10-24 14:19:10 · 185 阅读 · 0 评论 -
跳转应用市场中自己应用的页面进行评分
很多应用都有评分的功能,就是点击后跳转到应用市场中自己的app页面,进行打分,以下代码可以完成该功能,不过使用的时候,需要添加异常捕获,防止有些手机上没有安装应用市场类app而导致异常抛出。try{ String str = "market://details?id=" + getPackageName(); Intent localIntent = new Int原创 2016-10-30 11:49:24 · 305 阅读 · 0 评论 -
android 删除手机中图片的方法
在app中删除手机中的图片,如果使用file的delete方法,会出现删除不干净的情况,这个时候留有一个空白的文件,还是会显示在相册中。经过调查后,发现是数据库中没有更新导致的,后来经过测试多款机型,找到了一个比较好的方法,代码如下:Uri uri = MediaStore.Images.Media.EXTERNAL_CONTENT_URI;ContentResolver mCo原创 2016-11-01 09:40:41 · 8131 阅读 · 7 评论 -
android 中的getCacheDir()、getFilesDir()、getExternalFilesDir()、getExternalCacheDir()
getCacheDir()方法用于获取/data/data//cache目录getFilesDir()方法用于获取/data/data//files目录Context.getExternalFilesDir()方法可以获取到 SDCard/Android/data/你的应用的包名/files/ 目录,一般放一些长时间保存的数据Context.getExternalCacheDi原创 2016-11-19 16:30:16 · 895 阅读 · 0 评论 -
Android外置SD卡文件读写的解决方法
没有外置sd卡的权限的时候,可以采用下面的方法:startActivityForResult(new Intent(ACTION_OPEN_DOCUMENT_TREE), 0);这个Intent就是进入文件目录,选择sd卡的根目录,然后在OnActivityResult的操作:if (resultCode == RESULT_OK) {原创 2016-11-15 20:40:51 · 1738 阅读 · 0 评论 -
git 常用命令
创建分支: $ git branch mybranch切换分支: $ git checkout mybranch创建并切换分支: $ git checkout -b mybranch更新master主线上的东西到该分支上:$git rebase master切换到master分支:$git checkout master更新mybranch分支上的东西到master上:$git原创 2016-11-18 16:52:42 · 199 阅读 · 0 评论 -
android中imageview的图片scaletype各个属性值的意思
1. ScaleType.CENTER 按图片的原来size居中显示,当图片长/宽超过View的长/宽,则截取图片的居中部分显示2. ScaleType.CENTER_CROP 按比例扩大图片的size居中显示,使得图片长(宽)等于或大于View的长(宽) 3. ScaleType.CENTER_INSIDE原创 2016-11-18 16:36:58 · 288 阅读 · 0 评论 -
android 设置背景图的两种方法,避免白屏或者黑屏
为 Theme 设置背景图 给人程序启动快的感觉,界面先显示背景图,然后再刷新其他界面控件,刷新不同步。为 Theme 设置透明属性 给人程序启动慢的感觉,界面会一次性刷出来,刷新同步。theme为启动的activity的theme原创 2016-11-17 16:43:40 · 2207 阅读 · 1 评论 -
android利用recyclerview展示带有日期的图片列表
目前还没有写出这个demo,不过可以参考下面这两个链接,一个是显示日期的,还有一个是合并单元格:合并单元格:http://1029457926.iteye.com/blog/2295528显示日期:http://blog.csdn.net/wu996489865/article/details/52712301原创 2016-11-16 20:29:15 · 6473 阅读 · 0 评论