自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(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 532

原创 Android如何自动校验版本号,渠道号,签名和混淆

本文介绍了如何用python进行Android apk包校验版本名、版本号、渠道号、签名和是否混淆。

2015-11-09 11:28:32 3418 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 1497 1

原创 南京大学<软件测试>笔记

软件测试目的 通过在编写代码的整个过程中添加测试的检测流程,来减少设计失误、笔误、以及在程序中表现出来的失误。

2015-07-13 12:13:24 3774 1

原创 更进一步

开发之路

2015-07-08 14:00:49 762

原创 测试驱动开发与Android

文章唠叨了测试驱动开发是怎么在敏捷开发环境下被咱们捡起来的和Android进行JUnit开发时遇到的一些问题

2015-05-20 16:14:21 1191

原创 uri呼起activity

编写过滤器<activity android:name="org.daniel.android.test.CallUpActivity" android:label="@string/app_name" > 编写页面 Intent tes

2013-10-31 22:38:13 1107

原创 怎么让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 9693 3

原创 Android构建时需要考虑的问题

做Android产品区别与项目,产品是给公司做的持续的软件,公司内部写需求做页面设计和软件实现,完成第一版之后还需要不断升级和维护;项目是给别的公司做的软件,按照别人提供的设计说明书实现软件,没有升级和维护的问题。我没做过项目,只说产品。很多问题需要边做边想,我也还没有找到答案。1. 升级的问题。软件升级时最麻烦的应该是对已有数据的适配。数据库的升级有可能是跨代升级,比如一般升级是1 ->

2013-07-04 15:40:41 864

原创 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 552

原创 Android 习惯写法

有些习惯写法可能会提高性能和可维护性用Activity类去实现各种监听器public class ListenerDemoActivity extends Activity implements OnClickListener { @Override protected void onCreate(Bundle savedInstanceState) {

2013-06-04 11:47:00 819

原创 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 755

原创 给mobac添加地形图

一直对地图很感兴趣,最近在尝试写离线地图工具。需要离线地图包。用mobac去做。可惜新版本已经不支持商业地图包的使用,比如google map和open cycle map。查了些资料,其实mobac是可以适用这些地图的,只是由于版权原因,不将这些地图的下载选项添加在默认选项中。需要自己编写xml文件去分析url,并进行下载。以下是在网上搜到的open cycle map的下载方式:

2013-05-18 09:34:28 1552

原创 关于.9图的padding

.9图中是可以设置文字区域的。在以.9图为背景时,会影响控件内部的布局padding。问题是,这个图上的padding和我们手动设置的padding是什么关系?首先,制作一只.9图:以此为背景的控件,比如说ImageView,不设置padding的状态下,会将图片画在中心的格子中。然后在描述文件或者代码中设置padding之后的效果:好了,结论是:图片中的pad

2013-04-17 16:23:29 2886

原创 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 34787 1

原创 Android ListAdapter的高级功能

昨天某同学要转行做android,我问他ListView的Adapter用哪个,他说用SimpleAdapter。如果对Adapter的认识只停留在SimpleAdapter不是很够力啊。在学习android的时候大体都经历了SimpleAdapter->BaseAdapter的过程。对于一般应用,到BaseAdapter也就够了。BaseAdapter是ListAdapter的子类,给开发者提供

2013-02-20 12:04:08 6950

原创 如何翻转一张图片

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 2350

原创 ActivityGroup做了什么?

Activity和ActivityGroup的关系看起来很像View和ViewGroup,对比一下:ViewGroup继承了View并实现内部嵌入View。不管是View还是ViewGroup,在调用者看来都是一样的,只需要给它发送相应事件,并将View的内容显示到屏幕上ActivityGroup也继承了Activity,只是内部的Activity系统不会存档,不会像task那样做栈式

2012-12-21 15:18:44 2242 4

原创 怎么对ContentProvider中的数据变化进行监控

对于ContentProvider中数据变化的监控,系统提供了专门管理的方法,而这套方法好像和ContentProvider的关系不大。监控基于观察者模式,页可以应用到别的方面。同样这个监控也是跨进程的。observer方面需要完成注册和注销(onDestroy()时)observable方面需要完成数据改变后的触发先是observer端注册://新建用于监听变化的类

2012-12-18 11:42:05 845

原创 Android中的权限怎么用?

最开始接触权限是什么时候?向SD卡上写数据吗?还是获得GPS信息?权限就是控制你能不能调用某些服务的。每次我安装软件的时候都会看它使用了什么权限,那些偷用户信息的app一概pia飞。这就是权限的一个用法。说说权限的本质:当你的app对外界提供某些服务的时候却不想让所有app都能使用这些服务,这就需要权限。当app是系统时,权限就是系统权限;当app是自己的随便写的,权限就是自定义权限。飞到An

2012-12-17 18:52:41 832

原创 ContentProvider是干嘛用的?

Android开发的ContentProvider这个东西会看两遍吧。第一遍是整体选系android的时候,因为这个东西是四大组件之一,不看面试的时候不好说啊。第二次应该是实际要用的时候吧,或者像我这样写Activity写烦了想看点别的东西的人。入正题,ContentProvider是干嘛用的?它被用于跨进程做数据共享用。其实你把Android的四大金刚(组件)放到一起,仔细想想他们各自的用途

2012-12-17 18:33:44 6946 5

原创 ListView刷新的版本间差异

用最新版本系统的手机开发软件,放到低版本上会遇到一些奇怪的问题。俺参照着系统提供的可排序列表(com.android.music.TouchInterceptor网上基本上都是抄这个的)自己写了一个可排序列表。由于希望添加其他的手势相应和动画,没有直接用系统的那个,自己写了。所以也会遇到这些奇怪的问题。View.invalidate()刷新页面在4.0之前是需要手动调用的,比如做off

2012-12-05 15:36:53 598

原创 Handler-Looper中的生产者消费者模型

如果你在网上搜索的时候不幸地搜到这篇文章,实在抱歉啊,我不太会写文章。话说Handler-Looper,从听到这个东西到着手看它的源代码分析一下着实过了一年。Handler-Looper是干嘛用的?主要功能就是做线程交互吧,android对动画的实现用的也是它。嗯,如果你听说生产者-消费者(《操作系统》)模型,这个Handler-Looper也许可以套用一下。调用Handler的线程就是生

2012-11-16 17:35:31 1527

原创 android中的AdapterView阅读

其实我是想看ListView,但是ListView135k,父类AbsListView216k,爷类AdapterView39k。所以只能从老人家下手了。AdapterView直接继承了View,所以从这里看也是比较简单的方法。刚开始写android的时候总觉得Spinner这种鸡肋类存在没什么意义。看了类结构(前一篇有)之后才发现,这个类不常用,但是可以拿来学习,因为很小啊。乍看AdapterV

2012-10-22 18:10:46 2953

原创 android的widget包的结构

写页面写着写着就会遇到一些问题,某些功能widget不支持。比如gridview没有header和footer。那不自己写控件就得用一些javascript式的奇技淫巧。自己写的话,看源码是最好的方法吧。直接看listview会很头疼,因为listview继承了AbsListView,爷爷是AdapterView。所以看图吧。类名后面括号中的是类的大小,以kB为单位。将控件分成直接继承vi

2012-10-19 15:43:49 2139

原创 android实时滤镜的效率问题

android的市面上关于照片的产品,多数都不带实时滤镜(实时滤镜是对预览图进行处理)。可能实时滤镜需要用OpenGL ES 2.0进行处理图片,而2.2之前的android没法使用这个功能。实时滤镜分成几个步骤:获取预览图片数据(YUV格式)将YUV格式的数据转换成RGB格式(或者将YUV数据简单提取,传入GPU,让GPU做RGB转换)对原图的RGB数据进行滤镜算法这里说的效

2012-09-26 18:33:36 4442 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 1116

原创 TextView中分段改变文字的样式

接触android不深的童鞋们是不是以为TextView只能整体设置颜色,大小啊?我最开始就是这么认为的。但是看到新浪微博客户端的效果时发现,这里有得搞。仔细看看android.text包,你会很有收获。这里不单可以分段改变TextView中的文字的样式,还可以向里面插入图片!有意思吧。android.text的包结构看起来丰满吧,这里主要用到Spanable和Span两部分(这哥俩都是接口,从命

2012-07-27 10:22:29 5654

原创 自定义view时使用xml传递参数-设定TextView中图片大小

当给的widget不能满足使用的时候就需要自定义。用xml配置view十分方便。如果我们希望通过xml向view中传递参数,就得多写点东西。下面写的例子是对TextView的一个扩展。TextView提供了设置四个方向图片的功能,但是无法设置图片的大小就不太好了。本文实现了一个新的类TextViewPlus,对TextView进行扩展,让其能够在xml中配置图片大小。改变图片大小不能在xml中

2012-07-26 18:29:34 11151 2

原创 项目中的小问题

正在做一只图片相关的产品。关于UI1. 问题:自己写测量view大小的时候,返回的结果总是错的。原因:在layout_height中使用wrap_content,这样就需要多次测量。一次测量的结果就是错的。解决方法:在设置大小的时候尽量使用常量遗留问题:view在测量控件大小的时候的算法是什么?需要看源代码查找吗?评论:android中的layout_width和lay

2012-07-26 10:28:20 640

原创 ubuntu 12.04 用eclipse时的javadoc黑色背景换色

有人说改系统配置文件,虽说对geek们没啥,但是有一个更方便的方法,更好记。只需记住一个软件:GNOME Color Chooser。安装完这个软件之后,选择Specific标签,更改Tooltips中的前景色(字体颜色)和背景色就好啦。具体什么颜色到调色板中自娱自乐吧~~

2012-07-24 10:02:46 2443

原创 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 11685 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 2168

原创 当不断添加的新功能让代码混乱不堪该怎么办?

问题:昨天又让给项目添加一个新的功能。向代码一眼望去,混乱不堪。代码在最开始的时候,逻辑主线是十分清晰的。随着功能不断的添加,代码的主线被注入了不同功能的代码。结果就是很难看清代码的逻辑。同时一个文件中又被添加了很多全局变量,看起来都烦,找一个变量要费死劲了。原因:问题在于,我们期望将联系紧密的代码放在一起,而每次在代码上添添补补会造成联系紧密的代码被放到了整个程序主线的不同地方。想要解决问题

2012-05-08 16:44:22 967

原创 提高android代码效率的方法

这不算原创吧,也不是转载,也不是翻译。算是阅读笔记吧。源于android的dev guidehttp://developer.android.com/guide/practices/design/performance.html开始代码优化的基本原则:只做应该做的内存能不申请就不申请具体做法:1. 明智地做优化对于数据结构和算法的优化

2012-04-28 10:07:05 2373

原创 android存放本地数据

介绍android中向本地存放数据的方式有,数据库,sharedpreference和文件。如果想提出一个能用于存放缓存的话,数据库需要建立相应的表格,sharedPreference好像不可以,文件的话,用序列化就可以。所以就采用文件的方式。问题采用文件存放缓存有一个问题,就是有些对象是不能被序列化的,比如bitmap。我采用的方法就是,将这些对象前面加上transient标记,在反

2012-04-20 12:08:12 22337 1

原创 android中数据库创建操作的模式

介绍android使用sqlite做为数据库。使用数据库时需要用SQLiteOpenHelper创建数据库并得到SQLiteDatabase实例db,然后通过db的接口操作数据。问题这里面有一个问题:一个SQLiteOpenHelper对应一个database。Demo中给的例子将数据操作和Helper封装到了一起,这样要么一张表一个数据库文件,要么把所有的数据操作方法都放到一个文件中

2012-04-20 11:43:51 6729 5

原创 xml的变量命名和布局

这篇文比较白痴吧~~先说变量名命名,也就是xml中的@+id/xxx的命名。android中各个layout中的命名可以重复。其实仔细想想,如果不可以重复的话,命名空间就会比较混乱。findViewById()也是View干的,所以通过id来找View,只能通过这个View的父View来做。所以不同layout中的id是可以重复的。但是,还是建议命名按照下面的方式:layout

2012-04-19 16:31:28 3147

原创 json转换bean

json转换成bean其实不是android的问题,是java的问题。就我用过的方法来说,json转换成bean会有2中方法:通过JSONObject和JSONArray来读取json中的数据,然后新建相应对象并放入其中。也就是手动挡创建对象。通过工具类将对象自动创建成相应的对象。例如gson。用第三方库的时候,在开始用的时候可能会遇到一些解析问题,比如自己定义的域和gso

2012-04-18 10:04:43 3309

原创 android 中线程在可以在哪里用

写android不免要用到多线程,对于MVC分层来说,我习惯将线程的新建和终止放在C层,也就是activity中。对于M层,习惯从C层看M层都是同步方法,如果出现多线程,就不太好控制。对于V层,一般来说不会使用多线程。只有遇到解析大图片或者在ListView/Gallery中,为了避免加载数据造成用户界面卡壳现象,会采用新建线程异步加载图片。

2012-04-17 15:03:48 708

Coding for battery life

Google IO 2009主题演讲的演讲稿。主要介绍了Android机器的在各种情况下的电源消耗状况,并提出了一些能源是由优化的方法。挺有用的。

2013-03-27

For Butter or Worse

Google IO 2012大会上Chet Hase和Romain Guy做的主题演讲的ppt,介绍了Android绘图渲染的改进,以及如何调优渲染速度

2013-03-27

Doing More With Less

Google IO 2012大会上演讲的pdf文档,里面介绍了如何用CursorAdapter,LruCache进行GridView的显示延迟加载。Renderscript用于做图像渲染。

2013-03-27

Windows下链接工具link.exe

汇编语言编程调试工具,非常好用。和masm.exe配合使用。

2009-04-15

汇编工具MASM.EXE

Windows平台下的汇编编译工具,非常好用

2009-04-15

程序运行计时器(Windows+linux)

在Windows平台和Linux平台运用API实现对一个启动的程序进行计时

2009-04-15

空空如也

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

TA关注的人

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