- 博客(52)
- 资源 (5)
- 问答 (1)
- 收藏
- 关注
原创 Virtualbox adb device找不到设备解决办法
用这个ubuntu系统来开发andorid的应用,遇到一个问题,就是在Virtualbox的右下usb图标里面已经探测到了我的android设备“18d1”(如果没有探测到,请确定android设备打开了adb调试开关以及授权这台PC来调试Android)。去google了上述的关键字,发现有个老外也提出了相同的问题,但是他后来纠正了自己的错误,说是自己错误的启用了usbguard服务。注意:我搜索了下网上的资料,很多资料说在~/.android/这个里面搞个什么adb_usb.ini。
2024-10-13 10:13:12 433
原创 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 10162 5
原创 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 799
原创 Javadoc 识别@hide标记Tag之doclava
最近在开发java sdk, 但是sdk中的有些方法不想暴露给开发者。于是按照android的注释给这些接口加上了@hide的标记,但是在生成javadoc的时候发现这些接口还是出现了。并且看到在生成javadoc的日志中提示了@hide标签无法识别的错误。百度了下,很多地方说要使用google的docklava。于是在网上找了很多方法,都失败了。自己在github上搜索了下doclava然后根据其中的一个命令结合自己的工程最终测试成功。下面说下步骤:下载一个doclava的jar包
2021-01-16 13:52:09 679
原创 [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 468
原创 Android 蓝牙电话联系人同步之蓝牙状态检测
最近做的一个语音项目,要求车机端可以利用蓝牙,语音打电话给手机通讯录里的联系人。实现这个功能需要将手机端的通讯录上传到语音的远程服务器端,并且SDK要求必须把蓝牙的状态实时上报上去。上报通讯录其实还是很简单的,只要监听车机端的联系人provider的变化就可以进行读取操作和上报。mContactObserver = new ContactObserver(new Handler());Uri uri = ContactsContract.Contacts.CONTENT_URI;mReso
2020-06-16 08:26:06 1852 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 606
原创 Android如何通过parcelable传递自定义对象
一个后台服务,提供一个接口,想要利用上层的应用传递下来的数据,进行处理。但是这类数据种类繁多,该怎么办呢?Android 提供的parcelable将这些数据传递给世界的另一边。之前看了网络上的做法,有一篇文章无限接近实现了,但是由于部分错误,导致了我一直是失败的,后来自己经过摸索才终于找到原因。废话不多说,讲讲干货。假设我们在服务端有多个数据Bean,如ABean, BBean,CBean等待传...
2018-03-05 17:45:09 1857
原创 Ubuntu下配置BatteryHistorian跳坑指南
前段时间搞优化,其中就涉及到电池的管理。所以就决定把google Battery Historain在我的Ubuntu上配置一下。下面是google官方的Battery Historain的github配置介绍:https://github.com/google/battery-historian基本上按照上面的链接提供的流程是可以走通的,我主要讲在配置中遇到的几个坑:1 在安装dock桌面版的时...
2018-03-01 13:59:38 2791
原创 从需求到设计(记自已的一次开发经历)
闲来无聊,针对自己之前开发的一个项目中的一个案例,详细的说明一下从分析到设计再到最终完成的一个过程。希望对自己对正在寻求转变的人提供一点帮助。过程是:分析->设计 迭代开发。1 需求分析(案例): 这里以这个项目中的一个需求"为用户提供电视观看的功能"。这里我起名为"看电视"(watchTv) 案例:看电视 Actor: 用户 前置条件:系统的电视服务工作正
2016-07-27 17:13:21 3245
原创 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 1722
原创 Android TV如何杀死后台正在播放的媒体应用。。。
前段时间做了个android TV的项目,自己负责的模块是Launcher,这个Launcher上正好有个TV的小窗口,播放实时的TV信号。有一天一个测试跑到我这,感觉天要塌下来一样。 说: "Hi, 兄弟大事不好啦,完蛋啦。。。Launcher的TV不能播了" 我说“尼玛,竟有此事!” 于是跟着测试跑到问题机器上一看。。。尼玛电视电视,竟然无法播放电视了,我勒个去。。。。
2016-03-04 17:52:45 5324
原创 Android ScrollLayout判断滑动完毕。
最近在做个项目,需要判断ScrollLayout滑动是否完成。查了些资料,很多人说只要判断:computeScrollOffset()这个方法就可以了,如果是true表示滑动完毕,否则表示滑动失败。实际使用了下,发现是错误的,当滑动开始的时候,这个方法也返回true.最后发现需要这么写才能判断,ScrollLayout滑动结束。if (mScroller.computeScro
2016-03-04 16:40:00 2974
原创 开发日志整理3【Android tombstone分析 升级篇】
记得我在2011年8月的一篇文章Android Tombstone/Crash的log分析和定位介绍了如何分析tombstone。虽然详细介绍了具体的分析方法,但是想要找到具体的出错地点还是比较困难的。 前段时间在做海思的项目,自己又遇到了和media有关的tombstone的问题,此时非常的纠结。。。百般挫折,终于从芯片的工程师那得知了一个方法可以确认具体的位置。 废话不多说,方
2015-09-23 13:44:17 5851 1
原创 开发日志整理2【android layout用法注意点】
记得在开发的时候,想要实现一个动画效果。就是某个控件能够在focus的时候,自身的高度能够向上增长。实现这个方法有好多种方法。比如采用动态改变控件的高度或者采用layout的方式。一开始啥也没想,就用了layout方法在属性动画中valueAnimator里面去变化先看下这个View.layout(int left, int top, int right, int bottom)它
2015-09-15 16:57:02 2284
原创 开发日志整理1【android Launcher如何实现多屏循环滑动】
最近要开发一款TV上的Launcher,需求上要有三个类似三明治的页面,可以循环滚动,让用户自由切换。想过使用android原生的Launcher。但是分析了下,比较复杂,需要花费时间去理解和学习,由于任务紧迫,而且有特殊的定制要求所以决定采用ViewGroup去实现。下面就详细解决我是是如何实现的。 首先,我在代码中建立了一个“自定义控件”,这个控件继承与ViewGroup,额。
2015-09-06 10:54:54 4489 1
原创 开发日志整理<序>(5/2013-至今)
最近在开始整理2013年3月开始到现在的一些开发心得和日志。期间遇到了许许多多的莫名其妙的问题。因此,最后虽然都解决了,但是花费时间颇多。所以接下来,想写一些自己遇到的问题以及最后解决的方式。希望能够帮助自己提高,也希望能够帮助其他人。问题主要其中在android开发,应用层面的比较多,也有其他层面的。
2015-09-04 22:37:37 1787
原创 WM exiting with result code 0, clean up skipped
发现自己写的程序总是有这个出来,吓一跳,以为是有问题,后来通过stackoverflow的大牛
2014-07-11 14:57:39 10228
原创 Android SystemProperties.get()和System.getProperty()的区别
最近遇到一个蛋疼的疑问就是读取Android 属性值,看到有人在代码中调用了Property.get()。盲人摸象了一把,从字面上看,以为Property.get()是读取Android 系统属性的方法,说白了以为他等同于getprop。然后自己很傻很天真的用了一把,发现坑爹的是木有出现自己想要的结果。后来查了下,才知道,这个是反映JAVA属性的方法,无法获取android 系统属性,也就是Bui
2014-03-18 11:12:57 22635 1
原创 Android ViewPagr使用RequestFocus没有效果的解决方法
今天在开发的代码的时候,使用了Viewpage+fragment的结构,当切换到一个Fragment的时候,对一个RelativeLayout(Focusable=true, clickable=true已经设置过了)设置默认焦点,发现没有用。感觉很坑爹。 于是,自己写了一个测试程序,使用Activity发现可以的。想啊想啊,忽然想到,Framgent是预先加载的,所以原来requestFo
2014-02-13 17:30:02 4554
原创 android 编译模块及打包system.img命令
根目录下:1 . build/envsetup.sh2 lunch xxxx3 进入应用目录4 mm 然后等待编译完成再次进入根目录make snod搞定
2014-01-11 17:14:21 5628
原创 Android 自定义Viewpager滑动速度
由于Viewpager的滑动速度是固定的,所以很蛋疼。看了老外的文章可以利用反射机制,修改Viewpager的滑动速度。下面是代码实现: 需要新建个类FixedSpeedScoller继承自scroller类import android.content.Context;import android.view.animation.Interpolator;import andro
2014-01-11 10:29:29 12555 8
原创 Android 实现首次开机启动wizardsetup程序
Android 里面在pacakge/app/下面有个Provision程序,当Android第一次启动的时候它在Launcher启动前会被调用。所以如果我们想实现第一次开机自启动我们自己的引导设置程序我们可以在其代码中的DefaultActivity.java里面加入如下:Intent intent = new Intent();ComponentName componentName
2014-01-11 10:25:00 9430
原创 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 1521
原创 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 4162
转载 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 6191 1
转载 关于android 异常日志抓取监控
Thread.setDefaultUncaughtExceptionHandler(new Thread.UncaughtExceptionHandler(){ UncaughtExceptionHandler handler = Thread.getDefaultUncaughtExceptionHandler(); @Override
2013-03-29 15:30:40 3031
原创 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 1422
转载 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 11771
转载 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 1872
原创 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 5345
原创 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 6566
原创 杂记
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 1211
转载 android 使用swig工具, 依据JNI文件快速生成对应java文件
今天通过同事的建议,学习了1个快速生成JNI对应接口java文件的方法,非常简单,这是链接。需要注意的是,在生成的java文件后 会出现类型匹配问题,比如C++中的std:string类型,可以在脚本中swig.i中加入%include "std_string.i"
2012-11-23 14:27:45 4438
机器学习 西瓜书 hold-out留出法 疑问
2019-06-16
TA创建的收藏夹 TA关注的收藏夹
TA关注的人