Welcome 微信登录

首页 / 移动开发 / Android

基于将Android工程做成jar包和资源文件的解决方法

基于将Android工程做成jar包和资源文件的解决方法

需要特别注意的是,以jar包和资源包方式提供给第三方开发者,我们的工程的代码中就不能使用类似于R.layout.main、R.string.name等等这样的方式来引用资源了。为此,我们就不能直接使用R文件,而是要通过字段名称来动态的获取资源的id,再来使用。以下封装了一个类,可以通过字段名称动态获取id。复制代码 代码如下:package com.arui.util; import android.content.Context; public clas...
解析Android开发优化之:对Bitmap的内存优化详解

解析Android开发优化之:对Bitmap的内存优化详解

1) 要及时回收Bitmap的内存Bitmap类有一个方法recycle(),从方法名可以看出意思是回收。这里就有疑问了,Android系统有自己的垃圾回收机制,可以不定期的回收掉不使用的内存空间,当然也包括Bitmap的空间。那为什么还需要这个方法呢?Bitmap类的构造方法都是私有的,所以开发者不能直接new出一个Bitmap对象,只能通过BitmapFactory类的各种静态方法来实例化一个Bitmap。仔细查看BitmapFactory的源代码可以...
为Android应用增加渠道信息 自动化不同渠道的打包过程的使用详解

为Android应用增加渠道信息 自动化不同渠道的打包过程的使用详解

为什么需要在应用程序中增加渠道信息?Android应用的发布需要面对各种各样的市场,我们称之为渠道。有的时候,我们需要知道应用是从哪个渠道下载的。比如,我们可能需要统计哪些市场带来的用户量比较大。再比如,我们可能有一些盈利需要和具体的渠道进行分成。这些都是统计渠道的信息。一般如何在应用中加入渠道信息?为了统计渠道信息,就不得不在程序的某个地方加入渠道的信息,然后针对不同的渠道打不同的包。一般可以在Manifest文件中加入渠道编号,而不直接写在代码中。这样...
基于Android中dp和px之间进行转换的实现代码

基于Android中dp和px之间进行转换的实现代码

在xml布局文件中,我们既可以设置px,也可以设置dp(或者dip)。一般情况下,我们都会选择使用dp,这样可以保证不同屏幕分辨率的机器上布局一致。但是在代码中,如何处理呢?很多控件的方法中都只提供了设置px的方法,例如setPadding,并没有提供设置dp的方法。这个时候,如果需要设置dp的话,就要将dp转换成px了。以下是一个应用类,方便进行px和dp之间的转换。复制代码 代码如下:import android.content.Context; pu...
解析Android中实现滑动翻页之ViewFlipper的使用详解

解析Android中实现滑动翻页之ViewFlipper的使用详解

1)View切换的控件—ViewFlipper介绍ViewFilpper类继承于ViewAnimator类。而ViewAnimator类继承于FrameLayout。查看ViewAnimator类的源码可以看出此类的作用主要是为其中的View切换提供动画效果。该类有如下几个和动画相关的方法。setInAnimation:设置View进入屏幕时候使用的动画。该方法有两个重载方法,即可以直接传入Animation对象,也可以传入定义的Animation文件的r...
基于Android中Webview使用自定义的javascript进行回调的问题详解

基于Android中Webview使用自定义的javascript进行回调的问题详解

先说为什么需要讨论这个问题。现在很多的手机应用,都可能会直接嵌入一个web页面。这样做的好处:一个是功能更新方便,维护起来容易,只需要维护服务器的页面即可,不需要更新客户端;另一个是功能通用,不仅android可以用,ios也可以用,symbian也可以直接用。那为什么现在很多手机应用并不做成web方式的呢?原因很多。一个是现阶段web方式展现能力相对较弱,如果对于应用的美观程度要求比较高,就无法使用web方式;一个是web方式速度相对较慢,用户体验会受一...
解析Android中如何做到Service被关闭后又自动启动的实现方法

解析Android中如何做到Service被关闭后又自动启动的实现方法

首先要说的是,用户可能把这种做法视为流氓软件。大部分时候,程序员也不想把软件做成流氓软件,没办法,领导说了算。我们在使用某些Android应用的时候,可能会发现安装了某应用以后,会有一些服务也会随之运行。而且,这些服务每次都会随着手机开机而启动。有的服务做的更绝,当用户在运行的服务中手动停止该服务以后,过了一段时间,服务又自动运行了。虽然,从用户的角度来说,这种方式比较流氓。但是,从程序员的角度来说,这是如何做到的呢?经过研究,我发现有一种方式是可以实现的...
基于Android应用中如何反馈Crash报告的详解

基于Android应用中如何反馈Crash报告的详解

为什么需要反馈Crash报告?做Android应用程序,要尽量避免程序Crash的发生。虽然说零Crash是程序员追逐的最终目标,但是现实的情况是,程序员只能尽量的减少Crash的发生,而几乎不可能完全杜绝Crash。也许,你认为你的应用的健壮性已经近乎完美,轻松的经受住了测试部门魔鬼般的考验,但是当你的应用发布到市场,面对百万甚至千万级别的用户的时候,可能就没有那么幸运了。基于以上原因,一般的应用程序,都要有一个Crash反馈的机制。程序员可以根据反馈的...
Android中使用Toast.cancel()方法优化toast内容显示的解决方法

Android中使用Toast.cancel()方法优化toast内容显示的解决方法

产品在测试过程中发现一个bug,就是测试人员不停的疯狂的点击某个按钮,触发了toast以后,toast内容会一直排着队的显示出来,不能很快的消失。这样可能会影响用户的使用。看到Toast有一个cancel()方法:复制代码 代码如下:void cancel() Close the view if it"s showing, or don"t show it if it isn"t showing yet. 做程序员的,基本一看api就知道,用这个可以取消上...
Android工程:引用另一个Android工程的方法详解

Android工程:引用另一个Android工程的方法详解

现在已经有了一个Android工程A。我们想扩展A的功能,但是不想在A的基础上做开发,于是新建了另外一个Android工程B,想在B中引用A。一个思路是把工程A做成纯Jar包,这样其他的工程就可以直接引用了。但是,如果在工程A中用了R.java中的引用,则无法打成jar包了。原因是R.java是自动生成的,是动态的,每次编译都是不相同的。如果一定要做成jar包,就不能使用自动生成的R文件,用到资源时候就要写代码去获取。另一个思路就是将工程A做成androi...
解析在Android中为TextView增加自定义HTML标签的实现方法

解析在Android中为TextView增加自定义HTML标签的实现方法

Android中的TextView,本身就支持部分的Html格式标签。这其中包括常用的字体大小颜色设置,文本链接等。使用起来也比较方便,只需要使用Html类转换一下即可。比如:textView.setText(Html.fromHtml(str));然而,有一种场合,默认支持的标签可能不够用。比如,我们需要在textView中点击某种链接,返回到应用中的某个界面,而不仅仅是网络连接,如何实现?经过几个小时对android中的Html类源代码的研究,找到了解...
深入Android SQLite 事务处理详解

深入Android SQLite 事务处理详解

应用程序初始化时需要批量的向sqlite中插入大量数据,单独的使用for+Insert方法导致应用响应缓慢,因为 sqlite插入数据的时候默认一条语句就是一个事务,有多少条数据就有多少次磁盘操作。我的应用初始5000条记录也就是要5000次读写磁盘操作。而且不能保证所有数据都能同时插入。(有可能部分插入成功,另外一部分失败,后续还得删除。太麻烦)解决方法:添加事务处理,把5000条插入作为一个事务我们使用SQLite的事务进行控制:复制代码 代码如下: ...
解析Android获取系统cpu信息,内存,版本,电量等信息的方法详解

解析Android获取系统cpu信息,内存,版本,电量等信息的方法详解

Android获取系统cpu信息,内存,版本,电量等信息 1、CPU频率,CPU信息:/proc/cpuinfo和/proc/stat 通过读取文件/proc/cpuinfo系统CPU的类型等多种信息。读取/proc/stat 所有CPU活动的信息来计算CPU使用率下面我们就来讲讲如何通过代码来获取CPU频率:复制代码 代码如下:package com.orange.cpu;import java.io.BufferedReader;import java...
基于Manifest.xml中不要出现重复的uses permission的说明

基于Manifest.xml中不要出现重复的uses permission的说明

虽然Android没有明确指定uses-permission不可以重复写,但是最近的经验是最好是不要重复,否则在某些厂商定制的技巧可能出现问题。最近写一个应用,里面有用到网络访问,发现在有些机型下总是访问不了网络。而其他机型都是可以的。出现问题的手机网络都是正常的。后面发现Manifest.xml中有好几个网络相关的uses-permission都重复写了几个,于是把重复的去掉之后,发现现在访问网络都正常了。...
<< 341 342 343 344 345 346 347 348 349 350 >>