- 博客(45)
- 资源 (6)
- 收藏
- 关注
原创 dex主类方法过多问题
问题:编译失败Cannot fit requested classes in the main-dex file.methods: 65610 > 65536解决方向减少方法数(治标)解决主dex方法过多问题(治本)解决方案:这个问题一般出现在向项目中添加新库,又需要在Application中初始化它。根据现象,编译器会将Application中引用的类全都打到main-dex中。那么不在Application中初始化对应的类,编译器就会将对应的代码放到分出去的包中。弯路上网查
2020-06-05 17:34:48
572
原创 Android如何自动校验版本号,渠道号,签名和混淆
本文介绍了如何用python进行Android apk包校验版本名、版本号、渠道号、签名和是否混淆。
2015-11-09 11:28:32
3473
1
原创 android打包遇到中文alias怎么办
android用build.xml打包时,公司给的keystore,alias竟然是中文。配置ant.properties时,机器死活识别不了。用iconv将ant.properties文件转换成gbk编码iconv -f utf-8 -t gbk ant.propertiesfailed。原来ant的properties文件只能识别ascii编码的文件,只能将utf-8转换成ascii的方式,而a
2015-09-14 14:37:20
1529
1
原创 uri呼起activity
编写过滤器<activity android:name="org.daniel.android.test.CallUpActivity" android:label="@string/app_name" > 编写页面 Intent tes
2013-10-31 22:38:13
1120
原创 怎么让Android4.0以上机器的虚拟按键中显示menu键
4.0的menu被放到了actionbar上,如果不做任何设置的话,虚拟按键(虚拟的back和home键那里)上不会显示menu。网上搜了两个解决方法:1. 修改AndroidManifest.xml,去掉target的值。<uses-sdk android:minSdkVersion="8" android:targetSdkVersion="17" />改成
2013-08-29 16:01:31
9731
3
原创 Android构建时需要考虑的问题
做Android产品区别与项目,产品是给公司做的持续的软件,公司内部写需求做页面设计和软件实现,完成第一版之后还需要不断升级和维护;项目是给别的公司做的软件,按照别人提供的设计说明书实现软件,没有升级和维护的问题。我没做过项目,只说产品。很多问题需要边做边想,我也还没有找到答案。1. 升级的问题。软件升级时最麻烦的应该是对已有数据的适配。数据库的升级有可能是跨代升级,比如一般升级是1 ->
2013-07-04 15:40:41
879
原创 tips-android
1. Button是TextView,只有style不一样的TextView。很有趣吧。Button的源代码说明一切:public class Button extends TextView { public Button(Context context) { this(context, null); } public Button(Context
2013-06-06 11:47:32
567
原创 Android 习惯写法
有些习惯写法可能会提高性能和可维护性用Activity类去实现各种监听器public class ListenerDemoActivity extends Activity implements OnClickListener { @Override protected void onCreate(Bundle savedInstanceState) {
2013-06-04 11:47:00
829
原创 tips-tools
1. ubuntu 后期的主题会将eclipse的doc背景改成黑色,调整eclipse的配色方案起不到效果,需要修改系统主题文件。系统文件/usr/share/themes/Ambiance/gtk-2.0/gtkrc将第一行替换成:gtk-color-scheme = "base_color:#ffffff\nfg_color:#4c4c4c\ntooltip_fg_color
2013-05-20 11:04:01
767
原创 给mobac添加地形图
一直对地图很感兴趣,最近在尝试写离线地图工具。需要离线地图包。用mobac去做。可惜新版本已经不支持商业地图包的使用,比如google map和open cycle map。查了些资料,其实mobac是可以适用这些地图的,只是由于版权原因,不将这些地图的下载选项添加在默认选项中。需要自己编写xml文件去分析url,并进行下载。以下是在网上搜到的open cycle map的下载方式:
2013-05-18 09:34:28
1600
原创 关于.9图的padding
.9图中是可以设置文字区域的。在以.9图为背景时,会影响控件内部的布局padding。问题是,这个图上的padding和我们手动设置的padding是什么关系?首先,制作一只.9图:以此为背景的控件,比如说ImageView,不设置padding的状态下,会将图片画在中心的格子中。然后在描述文件或者代码中设置padding之后的效果:好了,结论是:图片中的pad
2013-04-17 16:23:29
2917
原创 manifest中的largeHeap是干什么用的?
今天群里有人讨论怎么给app分配超过100M的内存,有人亮出了largeHeap参数。搜搜资料写写代码,大概有些了解。以我的手机htc one x为例说明一下先看机器的内存限制,在/system/build.prop文件中:dalvik.vm.heapsize=128mdalvik.vm.heapgrowthlimit=64m这里,heapgrowthlimit就是一个普通应用的内存限制
2013-04-08 17:23:33
34858
1
原创 Android ListAdapter的高级功能
昨天某同学要转行做android,我问他ListView的Adapter用哪个,他说用SimpleAdapter。如果对Adapter的认识只停留在SimpleAdapter不是很够力啊。在学习android的时候大体都经历了SimpleAdapter->BaseAdapter的过程。对于一般应用,到BaseAdapter也就够了。BaseAdapter是ListAdapter的子类,给开发者提供
2013-02-20 12:04:08
6987
原创 如何翻转一张图片
android中对图片操作的集中在变换矩阵Matrix和graphic.Camera上。Matrix提供了二维的变换translate平移,scale缩放,rotate旋转,skew倾斜;Camera提供了翻转等操作。先看结果:再看代码:package org.daniel.android.suit.widget;import org.daniel.android.suit
2013-01-06 14:39:43
2369
原创 ActivityGroup做了什么?
Activity和ActivityGroup的关系看起来很像View和ViewGroup,对比一下:ViewGroup继承了View并实现内部嵌入View。不管是View还是ViewGroup,在调用者看来都是一样的,只需要给它发送相应事件,并将View的内容显示到屏幕上ActivityGroup也继承了Activity,只是内部的Activity系统不会存档,不会像task那样做栈式
2012-12-21 15:18:44
2250
4
原创 怎么对ContentProvider中的数据变化进行监控
对于ContentProvider中数据变化的监控,系统提供了专门管理的方法,而这套方法好像和ContentProvider的关系不大。监控基于观察者模式,页可以应用到别的方面。同样这个监控也是跨进程的。observer方面需要完成注册和注销(onDestroy()时)observable方面需要完成数据改变后的触发先是observer端注册://新建用于监听变化的类
2012-12-18 11:42:05
856
原创 Android中的权限怎么用?
最开始接触权限是什么时候?向SD卡上写数据吗?还是获得GPS信息?权限就是控制你能不能调用某些服务的。每次我安装软件的时候都会看它使用了什么权限,那些偷用户信息的app一概pia飞。这就是权限的一个用法。说说权限的本质:当你的app对外界提供某些服务的时候却不想让所有app都能使用这些服务,这就需要权限。当app是系统时,权限就是系统权限;当app是自己的随便写的,权限就是自定义权限。飞到An
2012-12-17 18:52:41
845
原创 ContentProvider是干嘛用的?
Android开发的ContentProvider这个东西会看两遍吧。第一遍是整体选系android的时候,因为这个东西是四大组件之一,不看面试的时候不好说啊。第二次应该是实际要用的时候吧,或者像我这样写Activity写烦了想看点别的东西的人。入正题,ContentProvider是干嘛用的?它被用于跨进程做数据共享用。其实你把Android的四大金刚(组件)放到一起,仔细想想他们各自的用途
2012-12-17 18:33:44
6966
5
原创 ListView刷新的版本间差异
用最新版本系统的手机开发软件,放到低版本上会遇到一些奇怪的问题。俺参照着系统提供的可排序列表(com.android.music.TouchInterceptor网上基本上都是抄这个的)自己写了一个可排序列表。由于希望添加其他的手势相应和动画,没有直接用系统的那个,自己写了。所以也会遇到这些奇怪的问题。View.invalidate()刷新页面在4.0之前是需要手动调用的,比如做off
2012-12-05 15:36:53
607
原创 Handler-Looper中的生产者消费者模型
如果你在网上搜索的时候不幸地搜到这篇文章,实在抱歉啊,我不太会写文章。话说Handler-Looper,从听到这个东西到着手看它的源代码分析一下着实过了一年。Handler-Looper是干嘛用的?主要功能就是做线程交互吧,android对动画的实现用的也是它。嗯,如果你听说生产者-消费者(《操作系统》)模型,这个Handler-Looper也许可以套用一下。调用Handler的线程就是生
2012-11-16 17:35:31
1546
原创 android中的AdapterView阅读
其实我是想看ListView,但是ListView135k,父类AbsListView216k,爷类AdapterView39k。所以只能从老人家下手了。AdapterView直接继承了View,所以从这里看也是比较简单的方法。刚开始写android的时候总觉得Spinner这种鸡肋类存在没什么意义。看了类结构(前一篇有)之后才发现,这个类不常用,但是可以拿来学习,因为很小啊。乍看AdapterV
2012-10-22 18:10:46
2964
原创 android的widget包的结构
写页面写着写着就会遇到一些问题,某些功能widget不支持。比如gridview没有header和footer。那不自己写控件就得用一些javascript式的奇技淫巧。自己写的话,看源码是最好的方法吧。直接看listview会很头疼,因为listview继承了AbsListView,爷爷是AdapterView。所以看图吧。类名后面括号中的是类的大小,以kB为单位。将控件分成直接继承vi
2012-10-19 15:43:49
2150
原创 android实时滤镜的效率问题
android的市面上关于照片的产品,多数都不带实时滤镜(实时滤镜是对预览图进行处理)。可能实时滤镜需要用OpenGL ES 2.0进行处理图片,而2.2之前的android没法使用这个功能。实时滤镜分成几个步骤:获取预览图片数据(YUV格式)将YUV格式的数据转换成RGB格式(或者将YUV数据简单提取,传入GPU,让GPU做RGB转换)对原图的RGB数据进行滤镜算法这里说的效
2012-09-26 18:33:36
4463
3
原创 在ubuntu12.04上安装Adobe Air
Air原来是跨平台的,后来就只跨破窗户和水果摊的平台了。air对小企鹅的支持只到2.6也够用了。air上还是有好用的软件的,比如说markman。问题:ubuntu12.04上安装air时提示需要安装keyring或者kwallet。不管你是否安装这哥俩,air的安装都提示失败。解决方法是,新建软链接:ia32:sudo ln -s /usr/lib/i386-linux-gnu/li
2012-07-31 11:26:16
1130
原创 TextView中分段改变文字的样式
接触android不深的童鞋们是不是以为TextView只能整体设置颜色,大小啊?我最开始就是这么认为的。但是看到新浪微博客户端的效果时发现,这里有得搞。仔细看看android.text包,你会很有收获。这里不单可以分段改变TextView中的文字的样式,还可以向里面插入图片!有意思吧。android.text的包结构看起来丰满吧,这里主要用到Spanable和Span两部分(这哥俩都是接口,从命
2012-07-27 10:22:29
5687
原创 自定义view时使用xml传递参数-设定TextView中图片大小
当给的widget不能满足使用的时候就需要自定义。用xml配置view十分方便。如果我们希望通过xml向view中传递参数,就得多写点东西。下面写的例子是对TextView的一个扩展。TextView提供了设置四个方向图片的功能,但是无法设置图片的大小就不太好了。本文实现了一个新的类TextViewPlus,对TextView进行扩展,让其能够在xml中配置图片大小。改变图片大小不能在xml中
2012-07-26 18:29:34
11186
2
原创 项目中的小问题
正在做一只图片相关的产品。关于UI1. 问题:自己写测量view大小的时候,返回的结果总是错的。原因:在layout_height中使用wrap_content,这样就需要多次测量。一次测量的结果就是错的。解决方法:在设置大小的时候尽量使用常量遗留问题:view在测量控件大小的时候的算法是什么?需要看源代码查找吗?评论:android中的layout_width和lay
2012-07-26 10:28:20
647
原创 ubuntu 12.04 用eclipse时的javadoc黑色背景换色
有人说改系统配置文件,虽说对geek们没啥,但是有一个更方便的方法,更好记。只需记住一个软件:GNOME Color Chooser。安装完这个软件之后,选择Specific标签,更改Tooltips中的前景色(字体颜色)和背景色就好啦。具体什么颜色到调色板中自娱自乐吧~~
2012-07-24 10:02:46
2456
原创 OpenGL中的线程问题
用OpenGL做交互的时候,总需要处理点击事件吧。结果今天在处理点击事件的时候,遇到一个问题。当点击事件触发openGL的函数时返回的handle都是0。原以为资源没有释放,但是改变代码结构之后发现不是这个问题。仔细看log后发现了一句话:call to OpenGL ES API with no current context (logged once per thread)上网查查原因
2012-07-18 15:13:16
11751
1
原创 在android 的openGL ES 2.0中怎么向shader中传struct
没想到openGL ES 2.0和1.x之间的差别那么大,而市面上介绍2.0的资料又很少。说说问题:怎么向shader中的struct传数据?直接说答案:struct不提供一次全部赋值的方法,只能一个一个数据传入。比如:struct Blur{ int a; float b;}uniform Blur blur;那么就需要向blur.a和blur.b中一个一
2012-07-16 16:24:05
2188
原创 当不断添加的新功能让代码混乱不堪该怎么办?
问题:昨天又让给项目添加一个新的功能。向代码一眼望去,混乱不堪。代码在最开始的时候,逻辑主线是十分清晰的。随着功能不断的添加,代码的主线被注入了不同功能的代码。结果就是很难看清代码的逻辑。同时一个文件中又被添加了很多全局变量,看起来都烦,找一个变量要费死劲了。原因:问题在于,我们期望将联系紧密的代码放在一起,而每次在代码上添添补补会造成联系紧密的代码被放到了整个程序主线的不同地方。想要解决问题
2012-05-08 16:44:22
993
原创 提高android代码效率的方法
这不算原创吧,也不是转载,也不是翻译。算是阅读笔记吧。源于android的dev guidehttp://developer.android.com/guide/practices/design/performance.html开始代码优化的基本原则:只做应该做的内存能不申请就不申请具体做法:1. 明智地做优化对于数据结构和算法的优化
2012-04-28 10:07:05
2379
原创 android存放本地数据
介绍android中向本地存放数据的方式有,数据库,sharedpreference和文件。如果想提出一个能用于存放缓存的话,数据库需要建立相应的表格,sharedPreference好像不可以,文件的话,用序列化就可以。所以就采用文件的方式。问题采用文件存放缓存有一个问题,就是有些对象是不能被序列化的,比如bitmap。我采用的方法就是,将这些对象前面加上transient标记,在反
2012-04-20 12:08:12
22355
1
原创 android中数据库创建操作的模式
介绍android使用sqlite做为数据库。使用数据库时需要用SQLiteOpenHelper创建数据库并得到SQLiteDatabase实例db,然后通过db的接口操作数据。问题这里面有一个问题:一个SQLiteOpenHelper对应一个database。Demo中给的例子将数据操作和Helper封装到了一起,这样要么一张表一个数据库文件,要么把所有的数据操作方法都放到一个文件中
2012-04-20 11:43:51
6743
5
原创 xml的变量命名和布局
这篇文比较白痴吧~~先说变量名命名,也就是xml中的@+id/xxx的命名。android中各个layout中的命名可以重复。其实仔细想想,如果不可以重复的话,命名空间就会比较混乱。findViewById()也是View干的,所以通过id来找View,只能通过这个View的父View来做。所以不同layout中的id是可以重复的。但是,还是建议命名按照下面的方式:layout
2012-04-19 16:31:28
3190
原创 json转换bean
json转换成bean其实不是android的问题,是java的问题。就我用过的方法来说,json转换成bean会有2中方法:通过JSONObject和JSONArray来读取json中的数据,然后新建相应对象并放入其中。也就是手动挡创建对象。通过工具类将对象自动创建成相应的对象。例如gson。用第三方库的时候,在开始用的时候可能会遇到一些解析问题,比如自己定义的域和gso
2012-04-18 10:04:43
3320
原创 android 中线程在可以在哪里用
写android不免要用到多线程,对于MVC分层来说,我习惯将线程的新建和终止放在C层,也就是activity中。对于M层,习惯从C层看M层都是同步方法,如果出现多线程,就不太好控制。对于V层,一般来说不会使用多线程。只有遇到解析大图片或者在ListView/Gallery中,为了避免加载数据造成用户界面卡壳现象,会采用新建线程异步加载图片。
2012-04-17 15:03:48
715
Coding for battery life
2013-03-27
For Butter or Worse
2013-03-27
Doing More With Less
2013-03-27
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人