Android开发
文章平均质量分 83
讲述Android
lxlmycsdnfree
脑科学爱好者,物理爱好者,计算机从业者
展开
-
Android开发各类常见错误解决方案
buildToolsVersion版本太高,我原来的 buildToolsVersion "24.0.0” 需要jdk1.8,而我的是jdk1.7,所以一直报这个错,刚开始以为是v4包和V7包冲突,因为之前遇到这样的问题,而这次删除V4包之后依然报这个错,上stackoverflow搜了一下,把buildTools版本降下来就好了。出现这个错误的原因是我引入的第三方库最低支持版本高于我的项目的最低支持版本,异常中的信息显示:我的项目的最低支持版本为14,而第三方库的最低支持版本为19,所以抛出了这个异常。原创 2024-09-13 18:47:32 · 1039 阅读 · 0 评论 -
新一代开源Android渠道包生成工具Walle
在Android 7.0(Nougat)推出了新的应用签名方案APK Signature Scheme v2后,之前快速生成渠道包的方式(美团Android自动化之旅—生成渠道包)已经行不通了,在此应用签名方案下如何快速生成渠道包呢?本文会对新的应用签名方案APK Signature Scheme v2以及新一代渠道生成工具进行详细深入的介绍。新的应用签名方案APK Signature Schem...原创 2018-02-27 10:16:00 · 183 阅读 · 0 评论 -
Android自动化之旅—生成渠道包
概述每当发新版本时,美团团购Android客户端会被分发到各个应用市场,比如豌豆荚,360手机助手等。为了统计这些市场的效果(活跃数,下单数等),需要有一种方法来唯一标识它们。团购客户端目前通过渠道号(channel)来区分不同的市场,代码中使用Config.channel变量记录该渠道号。比如,豌豆荚市场中美团应用的渠道号是wandoujia,360手机助手中美团应用的渠道号为qihu360。客...原创 2018-02-27 10:04:52 · 265 阅读 · 0 评论 -
Android单元测试框架Robolectric3.0介绍(二)
文章中的所有代码在此:https://github.com/geniusmart/LoveUT ,由于 Robolectric 3.0 和 3.1 版本(包括后续3.x版本)差异不小,该工程中包含这两个版本对应的测试用例 Demo 。一 闲话单元测试我们经常讲“前人种树,后人乘凉”,然而在软件开发中,往往呈现出来的却是截然相反的景象,我们在绩效和指标的驱使下,主动或被动的留下来大量坏味道的代码,在...转载 2018-02-25 14:36:31 · 336 阅读 · 0 评论 -
Android单元测试框架Robolectric3.0介绍(一)
一、关于Robolectric3.0文章中的所有代码在此:https://github.com/geniusmart/LoveUT ,由于 Robolectric 3.0 和 3.1 版本(包括后续3.x版本)差异不小,该工程中包含这两个版本对应的测试用例 Demo 。作为一个软件开发攻城狮,无论你多不屑多排斥单元测试,它都是一种非常好的开发方式,且不谈TDD,为自己写的代码负责,测试自己写的代码...转载 2018-02-25 14:33:19 · 556 阅读 · 0 评论 -
android 全局对话框(不依赖具体activity)
第一个方法利用系统弹出dialog,不过样子有点丑第二个方法是获取WindowManager,直接添加view本质上这两种原理是一样的。[java] view plaincopyalert.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT); 注:a原创 2017-06-27 14:47:25 · 1459 阅读 · 0 评论 -
activity中指定一页面动态设置软键盘弹出属性
要在设置的页面拿到对应的activityactivity.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE); activity中获取window然后拿到setSoftInputMode接口,fragment只能获取依附的activity然后拿到window对象,然后调用软键盘设原创 2017-04-25 14:42:22 · 1312 阅读 · 0 评论 -
popwindow 焦点问题,物理返回键截获,软键盘监听问题
首先是setFocusable这个方法,获取焦点;如果不获取焦点,那么popwindow中的控件都没有办法获取焦点和事件响应问题。如果获取焦点,那么popwindow就会拦截屏幕上的点击触摸事件以及物理键等。那么只有当popwindow消失,那么popwindow下面的页面才会响应事件。当然也可以做到popwindow获取事件响应也可以让popwindow以外的区域也可以获取,那就是设置s原创 2017-04-24 17:33:27 · 1777 阅读 · 1 评论 -
android view绘制过程
应用程序窗口内部所包含的视图对象的实际类型为DecorView。DecorView类继承了View类,是作为容器(ViewGroup)来使用的,它的实现如图1所示:每一个应用程序窗口的视图对象都有一个关联的ViewRoot对象,这些关联关系是由窗口管理器WindowManagerImpl来维护的,如图: 简单来说,ViewRoot相当于是MVC模型中转载 2017-05-05 15:20:13 · 310 阅读 · 0 评论 -
使用popwindow制作弹出框与获得焦点弹出软键盘
如果是声明一各类public class VideoFilterDialog extends PopupWindow那么在构造方法中添加:conentView = inflater.inflate(R.layout.video_popup_filter, null); this.setWidth(ViewGroup.LayoutParams.MATCH_PARENT);原创 2017-04-22 16:33:28 · 781 阅读 · 0 评论 -
SwipeRefreshlayout+RecyclerView+binding实现上拉和下拉刷新
fragment 直接继承 import android.support.v4.app.Fragment;将FragmentManager = getFragmentManager();修改为:FragmentManager fragmentManager = getSupportFragmentManager();那么FragmentTransaction = fragmentMa原创 2017-04-16 16:08:34 · 1420 阅读 · 0 评论 -
android Q版本外部存储问题以及获取空间大小问题
大部分手机没有插入sd卡,但是使用资源管理工具打开的时候,在存储路径上可以看到sd存储,有时候感觉很奇怪。原因是现在大部分手机将手机的存储空间默认的划分为ROM和sd卡存储。这个sd卡的存储是手机自带的。对于手机默认的sd卡存储,我们获取其存储空间或者读写权限,一定需要添加android:name="android.permission.WRITE_EXTERNAL_STORAGE">原创 2017-04-19 18:57:06 · 1895 阅读 · 0 评论 -
说说android的几种存储路径
String str1 = mContext.getFilesDir().getAbsolutePath();String sys = Environment.getRootDirectory().toString();String str2 = Environment.getDataDirectory().toString();LogEx.i("DownloadPathUtil str2"原创 2017-05-18 16:22:35 · 318 阅读 · 0 评论 -
android 获得手机外插SD卡 存储路径和存储空间
获取存储路径: /** * * * Description: 获取手机外插SD 存储路径 * * @date 2017-4-18 * @author * @param * @return */ public static String getOuterSDPath() {原创 2017-05-16 17:17:09 · 3418 阅读 · 0 评论 -
recyclerView + GridLayoutManager 实现任意网格布局+拖拽排序
uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>uses-permission android:name="android.permission.IN原创 2017-05-21 23:27:10 · 2864 阅读 · 1 评论 -
android 字定义GridView 引用自己的定义布局
如果你这个自定义的 view要在xml中使用,那么必须使用构造方法含有两个参数或者两个参数以上的。 否则一个参数的构造方法就可以。在构造方法中使用 inflate(context, Rlayout.main_activity.xml, GripView)public class CustomView extends ViewGroup { public CustomView(Co原创 2017-06-19 09:34:57 · 294 阅读 · 0 评论 -
安装 Android studio 运行 爆出 Unable to access Android SDK add-on list -...
安装 Android studio 都会安装 Android sdk,这时候一般自己会选择自己安装的目录。但是安装完成之后第一次运行会爆出 Unableto accessAndroid SDK add-on list -...很奇怪,明明安装了sdk,原因是什么?暂时还没有研究......解决方法:1. 在自己的Android studio安装目录下找到以下文件xx原创 2017-02-18 15:45:18 · 10530 阅读 · 1 评论 -
android studio 在gradle 中配置签名文件
signingConfigs { config { keyAlias 'gepanjiang' keyPassword 'ajqnhwvia' storeFile file('G:/SVN/custom/code/FoodmarketCustomer/app/docs/customer.jks')原创 2017-09-17 14:39:02 · 604 阅读 · 0 评论 -
android studio gradle 打出jar,同时将依赖的第三方jar打包在一起
最好的资料就是开发者资料:https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=open1419317340&token=&lang=zh_CN在你申请的开通的 app 账号上:点击 进入上述链接。开发分享只需要你申请原创 2017-09-17 11:52:02 · 1797 阅读 · 0 评论 -
popwindow setFocusable(false) 不消失与弹出软键盘的冰火不容的矛盾
这是android的bug吗???有的手机设置setOutsideTouchAble(false),就可以让其在点击pop区域以外不消失,但是有的手机需要设置setFocusable(false)才可以做到。但是如果popwindow要获取焦点,弹出软键盘,那么就无法做到了,就是冰与火的矛盾!!!有没有办法解决:在弹出pop之后设置焦点,但是不行,因为在pop 展示的时候就会把焦点值锁死,...原创 2017-04-25 18:40:37 · 2217 阅读 · 1 评论 -
Android SDK tools,platform-tools,build-tools 区别
sdk tools:针对pc平台下使用的工具:比如模拟器,.9patch工具,性能追踪可视化工具traceview;还有Android系统api,针对不同的系统api,对接口和性能做了调整,这也是Android sdk 的核心。platform-tools:针对pc端和移动端进行交互的一些工具:比如adb工具(通过该工具pc端获取移动端log信息),sqlite3工具(通过该工具查询移动端数据库信...原创 2018-04-12 14:54:02 · 6804 阅读 · 0 评论 -
ScrollView中嵌入Listview,当item高度不一样的时候,item展示不全问题
首先在scrollview中嵌入listview,我们需要动态设置listview的高度,否则只会展示一行。public void fixListViewHeight(ListView listView) { // 如果没有设置数据适配器,则ListView没有子项,返回。 ListAdapter listAdapter = listView.getAdapter();原创 2017-04-14 16:04:09 · 2921 阅读 · 5 评论 -
android 不同型号的终端的UI适配--一种解决方法
书写一个管理类,在每一个activity加载的时候初始化这个管理类,然后在控件创建绑定的时候去调用方法适配每一个控件view。import android.app.Activity;import android.app.Service;import android.content.pm.ActivityInfo;import android.util.DisplayMetrics;原创 2017-04-17 17:32:45 · 1590 阅读 · 0 评论 -
AS(Android studio)常见问题
1.JUnit 找不到问题JUnit是一个Java语言的单元测试框架,在as gradle编译的时候需要引入单元测试的东西,因此需要引用这个jar包。以前一直用Eclipse开发Android,最近准备用用Android Studio好不容易配置完了,新建了个工程竟然是有错误Error:A problem occurred configuring proje原创 2016-11-01 15:38:51 · 421 阅读 · 0 评论 -
Kotlin binding+RecyclerView实现支付宝首页更多、应用编辑界面
布局代码:xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/RelativeLayout02" android:layout_width="fill_parent" android:layout_height="fill_parent"> <LinearLa原创 2016-12-23 15:19:10 · 634 阅读 · 0 评论 -
签名build apk: Could not resolve all files for configuration ':app:lintClassPath' 问题
1、管理Fragment要在activity中管理fragment,需要使用FragmentManager. 通过调用activity的getFragmentManager()取得它的实例.•可以通过FragmentManager做一些事情, 包括: 使用findFragmentById()(用于在activity layout中提供一个UI的fragment)或findFragmen原创 2016-12-17 23:34:16 · 2602 阅读 · 0 评论 -
Android kotlin DataBinding 之 unresolved reference: BR
在Android布局中Linearlayout中为什么没有(alignParentRight/Left/Top/Bottom等属性);导致Linearlayout似乎不仅仅可以理解为线性布局,更是顺序布局。如果LinearLayout 布局中有以上属性那么LinearLayout会更加好用和灵活。原创 2017-03-01 21:57:34 · 992 阅读 · 0 评论 -
关于 android listview 加载数据错位(错乱)问题
一般的关于Adapter中getView的写法不外乎以下形式:@Overridepublic ViewgetView(int position, View convertView, ViewGroup parent) { ViewHolder holder; if (convertView == null) { convertView = mLayou原创 2017-03-12 15:36:39 · 1912 阅读 · 1 评论 -
android 应用异常可以引起android系统崩溃重启
AmlogicPlayerRender( 3633): ~AmlogicPlayerRender01-01 08:17:33.736 V/AmlogicPlayerDataSouceProtocol( 3633): L5901-01 08:17:33.736 V/AmlogicPlayer( 3633): set_cpu_freq_scaling_based_auido faile原创 2017-03-15 15:39:55 · 5418 阅读 · 0 评论 -
简单实现activity限时两次点击物理返回键退出
public static boolean isExit = false;@Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK) { exit(); ret原创 2017-03-17 23:09:13 · 629 阅读 · 0 评论 -
android中showSoftInput不起作用 与 toggleSoftInput
有些人会在activity或者fragment的onCreate(或者onCreateView)函数中就去调用上面两行代码,发现并不起作用,这是因为在onCreate中或者其他声明周期函数(onStart,onResume等)中,该EditText还未被绘制出来,InputMethodManager还不能获取到该控件的焦点,所以键盘并不会显示,而且manager.showSoftInput函数返回原创 2017-03-09 16:40:40 · 9611 阅读 · 1 评论 -
viewmodel+livedata+binding 实现listview+adapter
<LinearLayout android:layout_height="70dp" android:layout_width="match_parent" android:background="@color/white" android:orientation="horizontal"> <ImageView android:layou原创 2017-03-02 15:15:20 · 3144 阅读 · 0 评论 -
横屏展示 fragment 监听面积并非全屏,部分面积监听失效
java.lang.SecurityException: Permission Denial: get/set setting for user asks to run as user -2 but is calling from user 0; this requires android.permission.INTERACT_ACROSS_USERS_FULL可能这款应用在一些手机设备上没原创 2017-01-06 16:20:25 · 9136 阅读 · 0 评论 -
Android BroadcastReceiver中播放提示语音有时失效问题
Android BroadcastReceiver 千万不要做耗时的操作,如果有耗时的操作,请让OnReceive 中调用service。@Overridepublic void onReceive(Context context, Intent intent) {try { afd = assetManager.openFd("notify.wav");原创 2017-03-12 15:44:16 · 1450 阅读 · 0 评论 -
android平台使用java动态生成公私钥,并导出证书文件
问题背景:我这边android客户端需要在每一次启动的时候加载开机广告,具体流程,请求广告服务器拿回来图片的url,然后去下载图片,再然后就是popwindow去展示。代码如下:package com.iptvclient.android.baseclient.startupad;import android.content.Context;import android.g原创 2017-04-13 13:02:08 · 3073 阅读 · 0 评论 -
一个文件下载的工具类
主类:/** * * Copyright: Copyright (c) 2015 * Company: * Description: 这里写这个文件是干什么用的 * * @Title ImgDownloadUtil.java * @Package c * @version 1.0 * @author * @date 2015年9月9日 */package c原创 2017-04-13 12:36:34 · 342 阅读 · 0 评论 -
安装 android studio创建工程运行报错 -- 常见的三个问题
1. can not find the android sdk原因:你安装android studio 的时候,安装sdk的路径,你选择了别的路径,没有使用默认的路径,那么新创建工程的时候,默认使用sdk提示安装的默认路径,所以找不到。你只需要在工程启动页面下面有一个configure,在里面点击setting 设置sdk自己安装选择的就可以。或者在工程页面 点击setting,设置sdk原创 2017-04-12 11:41:43 · 1311 阅读 · 0 评论 -
ScrollView:java.lang.IllegalStateException: ScrollView can host only one direct child
java.lang.IllegalStateException: ScrollView can host only one direct child04-11 15:34:24.188 E/AndroidRuntime( 3679): at android.widget.ScrollView.addView(ScrollView.java:418)04-11 15:34:24.18原创 2017-04-11 15:47:10 · 785 阅读 · 0 评论 -
android 异步回调中操作UI线程,UI同步、卡死阻塞等性能问题
android开发中,回调无处不在,整个android开发的框架就是以回调机制建立起来的。如:activity,service,broadcast,fragment,view事件监听,baseadapter适配器等等,生命周期或者具体每一步的操作都是以回调的形式抛给开发者实现。先看UI同步问题:编码过程中,“Android异步回调UI同步性问题”经常存在,有时候稍不注意会产生一些看原创 2017-04-10 18:48:55 · 1902 阅读 · 0 评论 -
关于listview上下滑动imageview图片混乱问题
问题代码:@Overridepublic View getView(int position, View view, ViewGroup parent){ final ViewHolder mViewHolder; if(null == view){ mViewHolder = new ViewHolder(); view = LayoutI原创 2017-03-24 23:02:19 · 398 阅读 · 0 评论