暂无个人介绍
应用中许多网页由于优化的不够理想,出现加载慢,加载时间长等,而且因为碎片化导致兼容性问题,有一些网页有视频内容,产品还提出各种小窗需求,搞得心力憔悴。找到公开的有crosswalk和x5webview,经过分析和研究决定上x5weview,他的好处有哪些呢? 1.
动态权限对于谷歌来说从android6.0引入,对于国内的rom来说,这个题目不是好的选择题。因为大多数时候由于使用群众的层次不同,有些人在乎隐私的泄露,而更多的人却并不关心,使用了动态权限,增加了用户的交互对于中国市场来说,这并不是和本地化的设计。
在一些场景下我们需要知道应用是否在前台显示,当不在前台显示的时候,一些后台进程可以暂时停止,比如一些查询任务、不必要的线程、不需要的渲染等,以减少对设备资源的占用。判断应用是否在前台通常可以使用一下方式: ActivityManager am = (ActivityManager) get...
移动智能设备的快速普及,给生活带来巨大的精彩,但是智能设备上用户的信息数据很多,隐私数据也非常多,各种各样的app可能通过各种方式在悄悄的收集用户数据,而用户的隐私就变得耐人寻味了。比如之前的可以无限制的读取用户的联系人数据、短信记录、通话记录等,这些信息一旦泄露,可能就会造成重大财产损失。
续上一篇,开发图片二维码识别功能后,我们对功能进行性能分析内存占用显著提高了,不使用该功能内存占用大约是147M,使用这个功能多次以后,高达203M。 因此对功能进行研究,发现每次生成的图片没有即时的释放,导致内存中的图片不断累积,内存占用不断攀升。
最新业务开发二维码识别的功能,这个功能,在很多应用上都有,比如微信长按图片识别二维码,如果图片中存在可以识别的二维码时,可以增加一个选项 识别二维码。那么如何去实现这个功能呢。这里其实也非常简单,首先对图片进行二维码识别,识别结果返回的时候判断是否有二维码,有则增加识别二维码选项。
从项目的整体风格考虑,对所有类要进行必要的说明,就注释说明来说首先需要说明是作者,文件创建时间,业务功能说明,这几项是基本的内容,而添加这些说明内容以前可能手动的添加文件标题头,这种做法现在都非常过时了。
android 6.0以上为了保护用户的隐私,和以往被人诟病的权限机制,确立了新的权限机制。从 Android 6.0(API 级别 23)开始,用户开始在应用运行时向其授予权限,而不是在应用安装时授予。
在项目中遇到一个问题,在webveiw和原生之间进行传值的时候,出现了一些encode的小问题。看起来很简单的问题,实际上却存在不小的坑。 首先说一下目前项目的结构,在一个activity中,webview和原生之间有多种交互。
EventBus是Android下高效的发布/订阅事件总线机制。作用是可以代替传统的Intent,Handler,Broadcast或接口函数在Fragment,Activity,Service,线程之间传递数据,执行方法。
产品近来蛋疼,时间格式从做完到现在改了四遍了 ,最新的要求如下: * 2分钟内 无显示 * 2分钟-24小时 HH:mm * 昨天 昨天 HH:mm * 前天 前天 HH:mm * 今年 MM:DD HH:mm * 去年 去年 MM:DD HH:mm * 前年 前年 MM:DD HH:mm * 更远 yyyy:MM:DD HH:mm 这不是问题,很快写完代码。
公司项目选择了umeng的更新功能和,统计插件,而由于版本的管理,使得需要针对某些版本进行强制更新。比如上个版本出现了重大问题,必须进行版本升级才能修复,产品架构有了重大调整,数据结构发生了变化导致原先的app无法解析等等情况。
最近在看了许多关于dp-px,px-dp,sp-px,px-sp之间转化的博文,过去我比较常用的方式是: 1 //转换dip为px 2 public static int convertDipOrPx(Context context, int dip) { 3 float scale = context.
在最近的项目开发中,使用webview加载html页面,这样可以节省大量页面开发的时间,同时也可加快项目进度。 我们需求是需要显示商品评论,页面设计如下: 调用android代码,对于webview的设置如下: webView.
AndroidTouchGalleryLibrary 是一个非常好用的库, 但是使用的时候,需要小心处理,容易引发OutOfMemoryError,同时使用UrlTouchImageView的时候, 从网络下载是没有缓存的,因此每次都是新加载图片,同时使用在线家在较大图片容易导致程序挂掉 因此...
最近在开发平板项目,完全是fragmentactivity+fragment的结构。看起来似乎简单,但是和以前不同的是,业务逻辑非常复杂,多处的非常规跳转,fragment之间的数据交换,一处更新多处更新等操作,有时玩起来都心塞。
对于radiaoButton,应该很多人都用过。下面看一个场景 上方时radiogroup,细致观察发现左1,文字开始位置和右1文字开始位置不同,这是为何呢? 查看布局: 发现并无什么特别, style定义如下: 15sp 那么问题就来了,造成左右区别的到底是哪个属性?原来这里我们通过设置background可以使得文字的开始位置从最左边开始。
listview.setEmpty(View view); 使用listView或者gridView时,当列表为空时,有时需要显示一个特殊的empty view来提示用户,今日对这个方法进行一下小结,书写的方式有三种: 1.一般情况下,继承ListActivity,只要
这段时间在给朋友申请苹果账号,从个人开发者账号、团体账号到公司账号,申请了个遍。这里对申请流程做一下介绍,方便其他朋友,少走弯路,账号早日申请通过。 1.首先介绍下个人开发者账号、团体账号、公司账号之间的区别: 用途 限制 是否需要邓白氏码 费用(元) 申请地址 个人开发者账号 用于个人开发者上传和发布应用,在apptore上显示个人开发者信息。
xml中可以设置为: //手动设置maxLength为10 InputFilter[] filters = {new InputFilter.LengthFilter(10)}; et_rechargeFromWallet_count.
近来一直在做APK反编译和重编译的工作,针对一些apk需要放入一些相应的文件,(当然这里不涉及非法盈利,都是有合约的),在对一些包打包以后,发现可以通过一个叫做zipalign的工具进行优化,对于这个工具的介绍在谷歌官网有介绍:http://developer.android.com/tools/help/zipalign.html, 对其中我将一部分按照自己的理解翻译出来,如果翻译和理解不到位,还请指正。
git clone ssh://lijianfeng@192.168.1.246:29418/GMGameSDK压栈:git stash查状态:git status切换到要修改的提交:git rebase -i HEAD~3提交完成后的修改:git commit -a --amend确认提交:gi...
java.lang.Object android.graphics.drawable.DrawableKnown Direct Subclasses BitmapDrawable, ClipDrawable, ColorDrawable, DrawableContainer, Gra...
原型模式是一种创建型设计模式,在java中可以直接调用object.clone()。 原型模式属于对象的创建模式。通过给出一个原型对象来指明所有创建的对象的类型,然后用复制这个原型对象的办法创建出更多同类型的对象。
android:shadowColor="#000000" android:shadowDx="1" android:shadowDy="1" android:s...
集合几个工具方法,方便以后使用。 1.获取手机 分辨率屏幕: public static void printScreenInfor(Context context){ DisplayMetrics displayMetrics = context.
以前使用SVN很顺手,现在公司使用git来管理代码,因此学习git的基本使用。 一。首先介绍下SVN和git的简单比较: SVN是使用得最多的版本控制管理工具。 1.是一个集中式的版本管理工具。
三.接上一节,分析windowManager中添加一个悬浮框的方式,首先看代码 WindowManager.LayoutParams params = new LayoutParams(); params.
本文将主要介绍addview方法,在windowManager、window、viewGroup中的实现原理。首先将介绍这些类结构关系,然后分析其内在联系,介绍实现原理,最后介绍重要的一个参数windowManager.layoutParams。
android 开发中: 在AndroidManifest.xml中,元素可以作为子元素, 被包含在、 、和元素中, 不同的父元素,在应用时读取的方法也不同。 1 :在Activity应用元素。
1.是不是应该把数据刷新操作放在onResume()中? @Override public void onResume() { super.onResume(); refresh(); } public void refresh(){ initData(); } 这样不合适,在什么时候刷新是根据需要来的,并不是每次onResume()的时候都需要刷新。
亢奋了一段时间,争分夺秒的写代码,现在突然有点心不在焉,不知道为何,静不下来写代码,明明一个小时可以搞定的东西,就是要不能集中精神,愣是搞了大半天。 静心思故,沉心工作,努力加油
最近网络不错,一高兴把SDK升级了,结果你懂的----SVN只能检出,不能上传。 我的SDK升级到4.2.2了,ADT17,本来呢 eclipse安装的SVN插件1.6.18,服务器版本1.6, 结果SDK一升级 prefencese中tem SVN升到了1.7 ,然后呢,悲剧了,只能检出项目,不能上传,显示上传进度为0。
由于工作原因,大家都可能需要反编译一些apk去学习别人优秀的界面设计或者代码实现,那么网上的关于androd APK反编译的贴已经很多了,大家肯定都非常清楚,有些贴子还非常贴心的给出了反编译工具的下载链接,非常温馨,对于像我这样下载的反编译工具有时找不见,然后又去翻帖子,可以很快的获得整套...
已经通过实测解决了昨天的问题,但是现在此刻眼下火烧眉头的说这个问题真是困扰我了。实在无法得知,如何解决??。求解啊!!!! 使用make以后报错如下: host C: acp
近期在进行android源码编译,环境搭建神码痛苦不堪,在编译过程中更是错误不断,想想在windows环境下习惯了,切换到ubuntu上来操作,真真到一时难以适应。 各位看官,下面问题是出现在-------环境已经正确配置完成,执行make时出现的错误以及解决办法。
http://blog.csdn.net/mapdigit/article/details/8711799
首先接着上一篇,为什么谷歌设计联系人显示的时候姓名和电话不一起显示? 这里我们先到谷歌官方看联系人的介绍: The Contacts Provider is an Android content provider component.
android通信录想必大家都不会陌生,有系统自带的联系人,也有比如qq通信录,百度通讯录,,来电通,go联系人等。每种大家可能都有有偏好喜爱,但是这里我个人推荐大家使用qq通信录、百度通讯录以及来电通。
http://www.oschina.net/question/129540_64132
原文:http://www.cnblogs.com/productivity/archive/2012/10/25/2738238.html 如何摆脱低智商的社会,让自己脱颖而出? 看了大前研一的【低智商社会】后深有感触,日本如此发达的社会,大前研一却对于日本年轻人沉溺于动漫、网络游戏、网络社交,出现集体智商衰退的现象忧国忧民。
http://www.cnblogs.com/loulijun/archive/2012/02/03/2337230.html 原文地址 许多联网应用都在开始运行的时候检查当前网络状态,如果没有开启则去开启它,记录一下以前写程序时的网络检查,发现人的记忆力真是有限,总是隔段时间久忘记,所以记录下来是最好的记忆。
com.android.settings.AccessibilitySettings 辅助功能设置 com.android.settings.ActivityPicker 选择活动 com.android.
private void addContactToGroup(int contactId,int groupId) { //judge whether the contact has been in the group bool...
final ArrayList operationList = new ArrayList(); ContentProviderOperation.
这篇文章只是总结下getView里面优化视图的几种写法,就像孔乙己写茴香豆的茴字的几种写法一样,高手勿喷,勿笑,只是拿出来分享,有错误的地方欢迎大家指正,谢谢。 listview A view that shows items in a vertically scrolling list 。
写这边文章之前,犹豫再三,不知道会不会冒犯一位朋友,他给我之前的一篇文章提出的意见。但我声明真心无意,只是想把问题拿出来分析一下,希望获得理解。 listview在android开发中很地方都用到了,通常我们需要定制item里面的视图,就要重写adapter。
最近写了一个项目,界面使用的是帧布局,里面放置了listview显示联系人,以及右侧有对联系人的字母索引定位。 结果在对联系人listview设置onItemClickListener时,发现竟然不起作用。
写好Notification , 按Home回到主界面,再按通知栏的消息(Notification), 回到退出之前正在运行的Acticity . 在代码中加入两行代码作为声名即可。 : Intent notificationIntent = new Intent(this,this.
相比较onMeasure ,layout过程要简单多了,正如layout的中文意思“布局”中表达的一样,layout的过程就是确定View在屏幕上显示的具体位置,在代码中就是设置其成员变量mLeft,mTop,mRight,mBottom的值,这几个值构成的矩形区域就是该View显示的位置,不过这里的具体位置都是相对与父视图的位置。