自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(51)
  • 资源 (5)
  • 问答 (1)
  • 收藏
  • 关注

原创 Android Gradle7.0 allowInsecureProtocol (true)依然无法引入Maven库的解决方案

由于Gradle7.0增加了对Maven url的安全验证,传统不安全的以http开头的url,会导致引入仓库失败。所以依照官方说明可以增加allowInsecureProtocol在自己的Maven{}里。但是有的时候引入的Maven库url是属于内网,这个时候,仅仅在根目录下的build.gradle下增加这个依然无效,此时还需要拷贝刚才修改的maven{}内容到setting.gradle这个文件中的repositories里。这样引入的库就可以完美解析了。...

2021-10-28 09:28:39 9515 4

原创 Android如何利用InvocationHandler动态代理调用aidl接口

众所周知,Java的InvocationHandler可以作为动态代理去调用接口方法。但是如何去调用android里面的aidl接口定义的方法呢?经过查阅相关资料和自己实践最终得出解决方案:1 首先利用反射获取aidl接口的实例Class<?> reflectCallback = null;try { reflectCallback = Class.forName("com.xxx.xxx.IAidlClass"); //aidl类 } catch (C

2021-03-12 09:18:20 706

原创 Javadoc 识别@hide标记Tag之doclava

最近在开发java sdk, 但是sdk中的有些方法不想暴露给开发者。于是按照android的注释给这些接口加上了@hide的标记,但是在生成javadoc的时候发现这些接口还是出现了。并且看到在生成javadoc的日志中提示了@hide标签无法识别的错误。百度了下,很多地方说要使用google的docklava。于是在网上找了很多方法,都失败了。自己在github上搜索了下doclava然后根据其中的一个命令结合自己的工程最终测试成功。下面说下步骤:下载一个doclava的jar包

2021-01-16 13:52:09 594

原创 [Android追忆]CTS测试中的原生Setting和开发setting的切换

几年前,自己在做CTS的TV产品的验证工作,日本google要求给他们测试的机器必须安装原生Setting。那个时候使用的是4.4版本,当时还没有android TV版本,所以我们产品不用原生的Setting,自己开发了一个TV版的Setting。那怎么能让他们自由切换呢,很是麻烦,好在之前开发过用户向导,知道有一个Provision应用,里面有这么一段代码:PackageManager pm = getPackageManager();ComponentName name = new Compon

2020-06-16 10:11:16 421

原创 Android 蓝牙电话联系人同步之蓝牙状态检测

最近做的一个语音项目,要求车机端可以利用蓝牙,语音打电话给手机通讯录里的联系人。实现这个功能需要将手机端的通讯录上传到语音的远程服务器端,并且SDK要求必须把蓝牙的状态实时上报上去。上报通讯录其实还是很简单的,只要监听车机端的联系人provider的变化就可以进行读取操作和上报。mContactObserver = new ContactObserver(new Handler());Uri uri = ContactsContract.Contacts.CONTENT_URI;mReso

2020-06-16 08:26:06 1688 1

原创 Android-Service端和Clinet端通讯-如果client被杀了

最近做了一个android的语音项目,service端集成了语音服务,该service提供相关的语音SDK,比如语音搜索音乐,然后音乐app service集成这个SDK,从而获得语音能力。在实际开发的过程中遇到两个棘手的问题:1 Voice Service起来了,如果Music并没有启动,有人请求语音搜索音乐,那么怎么能告诉你呢?2 如果Music起来并且通过bind接口绑定了Voice,那么voice如何知道呢?针对两个问题我们进行分析:1 Voice Service起来而M..

2020-06-15 20:14:14 536

原创 Android如何通过parcelable传递自定义对象

一个后台服务,提供一个接口,想要利用上层的应用传递下来的数据,进行处理。但是这类数据种类繁多,该怎么办呢?Android 提供的parcelable将这些数据传递给世界的另一边。之前看了网络上的做法,有一篇文章无限接近实现了,但是由于部分错误,导致了我一直是失败的,后来自己经过摸索才终于找到原因。废话不多说,讲讲干货。假设我们在服务端有多个数据Bean,如ABean, BBean,CBean等待传...

2018-03-05 17:45:09 1792

原创 Ubuntu下配置BatteryHistorian跳坑指南

前段时间搞优化,其中就涉及到电池的管理。所以就决定把google Battery Historain在我的Ubuntu上配置一下。下面是google官方的Battery Historain的github配置介绍:https://github.com/google/battery-historian基本上按照上面的链接提供的流程是可以走通的,我主要讲在配置中遇到的几个坑:1 在安装dock桌面版的时...

2018-03-01 13:59:38 2719

原创 从需求到设计(记自已的一次开发经历)

闲来无聊,针对自己之前开发的一个项目中的一个案例,详细的说明一下从分析到设计再到最终完成的一个过程。希望对自己对正在寻求转变的人提供一点帮助。过程是:分析->设计 迭代开发。1 需求分析(案例):  这里以这个项目中的一个需求"为用户提供电视观看的功能"。这里我起名为"看电视"(watchTv)  案例:看电视  Actor: 用户  前置条件:系统的电视服务工作正

2016-07-27 17:13:21 3206

原创 Ubuntu15.10配置redmine

最近刚刚在win10上搭建了一个redmine的服务,用于管理自己的小团队。闲来在家无聊,家里正好有台ubuntu15.10系统的64位机器,于是就想也搞个这个东西来玩玩。废话不多说开始讲解配置过程:1 安装mysql:sudo apt-get install mysql-server mysql-client安装的过程中会有提示,让你输入数据库管理员root的密码,你就输入并且记住这

2016-03-28 18:35:08 1681

原创 Android TV如何杀死后台正在播放的媒体应用。。。

前段时间做了个android TV的项目,自己负责的模块是Launcher,这个Launcher上正好有个TV的小窗口,播放实时的TV信号。有一天一个测试跑到我这,感觉天要塌下来一样。  说: "Hi, 兄弟大事不好啦,完蛋啦。。。Launcher的TV不能播了"  我说“尼玛,竟有此事!”  于是跟着测试跑到问题机器上一看。。。尼玛电视电视,竟然无法播放电视了,我勒个去。。。。

2016-03-04 17:52:45 5155

原创 Android ScrollLayout判断滑动完毕。

最近在做个项目,需要判断ScrollLayout滑动是否完成。查了些资料,很多人说只要判断:computeScrollOffset()这个方法就可以了,如果是true表示滑动完毕,否则表示滑动失败。实际使用了下,发现是错误的,当滑动开始的时候,这个方法也返回true.最后发现需要这么写才能判断,ScrollLayout滑动结束。if (mScroller.computeScro

2016-03-04 16:40:00 2917

原创 开发日志整理3【Android tombstone分析 升级篇】

记得我在2011年8月的一篇文章Android Tombstone/Crash的log分析和定位介绍了如何分析tombstone。虽然详细介绍了具体的分析方法,但是想要找到具体的出错地点还是比较困难的。  前段时间在做海思的项目,自己又遇到了和media有关的tombstone的问题,此时非常的纠结。。。百般挫折,终于从芯片的工程师那得知了一个方法可以确认具体的位置。  废话不多说,方

2015-09-23 13:44:17 5800 1

原创 开发日志整理2【android layout用法注意点】

记得在开发的时候,想要实现一个动画效果。就是某个控件能够在focus的时候,自身的高度能够向上增长。实现这个方法有好多种方法。比如采用动态改变控件的高度或者采用layout的方式。一开始啥也没想,就用了layout方法在属性动画中valueAnimator里面去变化先看下这个View.layout(int left, int top, int right, int bottom)它

2015-09-15 16:57:02 2250

原创 开发日志整理1【android Launcher如何实现多屏循环滑动】

最近要开发一款TV上的Launcher,需求上要有三个类似三明治的页面,可以循环滚动,让用户自由切换。想过使用android原生的Launcher。但是分析了下,比较复杂,需要花费时间去理解和学习,由于任务紧迫,而且有特殊的定制要求所以决定采用ViewGroup去实现。下面就详细解决我是是如何实现的。       首先,我在代码中建立了一个“自定义控件”,这个控件继承与ViewGroup,额。

2015-09-06 10:54:54 4442 1

原创 开发日志整理<序>(5/2013-至今)

最近在开始整理2013年3月开始到现在的一些开发心得和日志。期间遇到了许许多多的莫名其妙的问题。因此,最后虽然都解决了,但是花费时间颇多。所以接下来,想写一些自己遇到的问题以及最后解决的方式。希望能够帮助自己提高,也希望能够帮助其他人。问题主要其中在android开发,应用层面的比较多,也有其他层面的。

2015-09-04 22:37:37 1719

原创 Android4.2 Usb Debug启动流程

最近自己搞的Android项目,发现设置中的Usb Debug无法启动了,于是

2014-09-22 09:18:11 6408

原创 Ubuntu14.04上安装tftpd服务

准备在自己的Ubuntu14.04上使用tftpd服务,然后在网上查

2014-09-11 09:23:10 13747 3

原创 Android4.2 CTS test_getByName Fail解决

最近在搞android4.2 的CTS问题,遇到一个

2014-09-03 13:34:39 7546

原创 WM exiting with result code 0, clean up skipped

发现自己写的程序总是有这个出来,吓一跳,以为是有问题,后来通过stackoverflow的大牛

2014-07-11 14:57:39 10070

原创 android 怎么给应用系统签名

有的时候自己的应用需要用到系统权限,怎么办两zh o

2014-06-05 14:48:22 2524

原创 Android SystemProperties.get()和System.getProperty()的区别

最近遇到一个蛋疼的疑问就是读取Android 属性值,看到有人在代码中调用了Property.get()。盲人摸象了一把,从字面上看,以为Property.get()是读取Android 系统属性的方法,说白了以为他等同于getprop。然后自己很傻很天真的用了一把,发现坑爹的是木有出现自己想要的结果。后来查了下,才知道,这个是反映JAVA属性的方法,无法获取android 系统属性,也就是Bui

2014-03-18 11:12:57 22321 1

原创 Android ViewPagr使用RequestFocus没有效果的解决方法

今天在开发的代码的时候,使用了Viewpage+fragment的结构,当切换到一个Fragment的时候,对一个RelativeLayout(Focusable=true, clickable=true已经设置过了)设置默认焦点,发现没有用。感觉很坑爹。  于是,自己写了一个测试程序,使用Activity发现可以的。想啊想啊,忽然想到,Framgent是预先加载的,所以原来requestFo

2014-02-13 17:30:02 4514

原创 如何在android.mk中使用shell命令

很简单: $(shell XXX) 就这一句

2014-01-14 17:13:29 7901

原创 android 编译模块及打包system.img命令

根目录下:1 . build/envsetup.sh2   lunch xxxx3   进入应用目录4 mm 然后等待编译完成再次进入根目录make snod搞定

2014-01-11 17:14:21 5567

原创 Android 自定义Viewpager滑动速度

由于Viewpager的滑动速度是固定的,所以很蛋疼。看了老外的文章可以利用反射机制,修改Viewpager的滑动速度。下面是代码实现: 需要新建个类FixedSpeedScoller继承自scroller类import android.content.Context;import android.view.animation.Interpolator;import andro

2014-01-11 10:29:29 12517 8

原创 Android 实现首次开机启动wizardsetup程序

Android 里面在pacakge/app/下面有个Provision程序,当Android第一次启动的时候它在Launcher启动前会被调用。所以如果我们想实现第一次开机自启动我们自己的引导设置程序我们可以在其代码中的DefaultActivity.java里面加入如下:Intent intent = new Intent();ComponentName componentName

2014-01-11 10:25:00 9330

原创 ubuntu12.04 上android源码编译,提示zip error

今天在ubuntu12.04上编译源码,出现了zip error,貌似在打包image的时候,查了下是因为svn版本1.6的原因。升级到1.7就可以解决这个问题。下面是步骤:先卸载掉原先的svn1 加入ppa升级源:  在/etc/source.list下面加入  deb http://ppa.launchpad .net/svn/ppa/ubuntu precise main

2014-01-11 10:19:27 1463

原创 The requested URL returned error:406 while accessing https

google了一下,原来是当某个ip超过匿名的配额后,就会被服务器拒绝,这是就需要用google授权访问,。 解决办法: 1.登录https://android.googlesource.com/new-password,并授权googlesource.com访问 2.点击允许授权后将得到 machine android.googlesource.com login git-.

2013-10-31 11:26:49 4087

转载 android edittext password hint字体不同于别的字体的解决

EditText password = (EditText) findViewById(R.id.register_password_text);password.setTypeface(Typeface.DEFAULT);password.setTransformationMethod(new PasswordTransformationMethod());此外需要去除xml中的androi

2013-04-16 16:37:47 6153 1

转载 关于android 异常日志抓取监控

Thread.setDefaultUncaughtExceptionHandler(new Thread.UncaughtExceptionHandler(){ UncaughtExceptionHandler handler = Thread.getDefaultUncaughtExceptionHandler(); @Override

2013-03-29 15:30:40 2986

原创 Android 应用开发实用工具和注意点

1 Market filters 2 Add-ons 扩充SDK API3 svn-merge 代码管控4 PMD eclipse 代码重构插件5 layoutopt 布局优化,检查无用多余的布局使用方法1 batch insert  减少数据库插入所耗时间2 InsertHelper 减少数据库插入所耗时间3 linkHashmap c

2013-03-18 15:57:29 1394

转载 cannot be cast to android.widget.HeaderViewListAdapter

cannot be cast to android.widget.HeaderViewListAdapter用listview设置header或footerview,通常发生该异常。如果你没有发生,那是碰巧。但是你可能不知道原因。如果在listview.setAdapter(adapter)方法之后 添加头或尾view,即addHeaderView或 addFooterView,

2013-01-24 17:29:13 11693

转载 android listview 刷新背景变黑色

android:cacheColorHin=“”

2013-01-08 12:56:53 1696

转载 android listview 和button 共存的事件响应问题。

如果listview 的item里面有button,imagebutton,往往会造成click事件被button截取,而listview的item收不到click事件,通过google,发现需要做两件事情1 在item的布局中给我们最大的layout设置1个属性 android:descendantFocusability="blocksDescendants"  blocksD

2013-01-08 10:31:35 1841

原创 AIDL interface XXX should be declared in a file

在写AIDL的时候出现了interface XXX should be declared in a file, 错误。。。经过反复查看,发现AIDL规定,文件名必须和interface XXX名字相同,否则会报上面错误。

2012-12-13 17:37:58 5201

原创 Android 导入多个外部静态链接库, 进行动态库编译方法( NDK)

Android.mk 可以这样写:LOCAL_PATH := $(call my-dir)##############loading static lib################################static lib1################include $(CLEAR_VARS)LOCAL_ARM_MODE := armLOCAL_MO

2012-11-27 11:10:43 6511

原创 杂记

1 使用javah创建JNI对应头文件javah -classpath bin/classes -d jni/include com.xxx.xxx.myclass2 有的时候用NDK编译JNi文件,会默认寻找JNI下面的Android.mk,如果没有的话会报错,如果把android.mk放在子目录下,需要在JNI目录下,写个父Android.mk把子Android.mk包

2012-11-26 14:11:43 1182

转载 android 使用swig工具, 依据JNI文件快速生成对应java文件

今天通过同事的建议,学习了1个快速生成JNI对应接口java文件的方法,非常简单,这是链接。需要注意的是,在生成的java文件后 会出现类型匹配问题,比如C++中的std:string类型,可以在脚本中swig.i中加入%include "std_string.i"

2012-11-23 14:27:45 4404

原创 java 强制将数据写入磁盘

今天遇到个问题,就是在试图将数据写入文件的时候发现有的时候,数据还在缓存中,并没有将数据及时写入到磁盘上,尝试用了flush,发现也没用,后来通过网络上,发现了解决方法 FileOutputStream fos = new FileOutputStream(entryFile); BufferedOutputStream dest =

2012-10-12 11:18:40 5544 1

doclava-1.0.6

google doclava jar

2021-01-14

android studio build.grade

这个脚本可以在studio里面完美运行系统应用。

2016-09-28

android JNI小例子

这是一个简单的JNI代码例子,希望能够帮助大家学习

2016-09-14

android百叶窗效果

实现android 百叶窗切换图片效果.里面两个文件需要同时导入(不是本人写的转的)

2014-01-02

王爽 汇编语言 入门必看的好书

学习汇编入门程序,比一些垃圾好太多了,浅显易懂

2008-10-09

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

TA关注的人

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