随笔分类 - Android
摘要:——Android中高级技术免费培训QQ群(118949422)第三期专题培训 本期的多线程主题与Android相关,侧重讲解在Android中如何用好多线程,需要你有Java的多线程基础。 首先我们思考几个问题,在Android应用中为什么要用多线程?为了解决哪些问题?或者为了实现哪些功能?有哪些好处?请先思考一分钟,再继续往下看。 学习而不思考就像吃东西而不嚼,要么无法下咽,要么尝不出味道,同时都会影响消化吸收。控制一下你那脱缰野马一样的好奇心吧,先思考再往下看。————————————————飘过这条分隔线,我们继续——————————————————1. 为什么要用多线程这里列出几个原
阅读全文
摘要:从事软件业也有几年了,经历几多个不同的公司、不同企业文化、不同的开发流程,不变的身边总是有零星高手和多数的普通程序员。我总是苦苦思索,一个刚入行的程序员如何才能成为一个软件高手呢?在这里我们不讨论那些奇才怪才,比如几岁或十几岁就接触电脑、初中高中就会编程,或者大学期间就积累了一些经验和人脉,或者辍学开公司去了的牛人们。我们只讨论一个普通的或相对优秀的程序员,在公司里工作的过程中如何成长为一个高手。 近几年国内的大学,计算机专业毕业的学生,上学期间只有几名学生有过软件业相关的实践,大多数可能连编程还不懂,即使学过c、c++、java课程。我一直反对大学毕业考研或者保研、直博或者考博然后留校任教.
阅读全文
摘要:Android免费培训QQ群(118949422)第二期专题培训(转载请注明出处,商用请与本人联系)1. 首先我们思考一个问题,Android中哪些部分需要提高安全性防止被破解,哪些部分无法保证安全? a) 首先,如果你的应用跟其他人竞争的是创意、用户体验、服务等等偏软的东西,同时是免费的,并没有什么技术难点,要评估一下是否确实需要提高代码的安全性。 b) 对于图片、xml文件或者apk文件本身是无法加密的。因为这些文件是由Andriod虚拟机加载和读取,加密后Android虚拟机无法识别,你的应用也无法正常使用了。如果有需要保密的内容,不要放到这些文件里。 c) 有很多Android应用需要
阅读全文
摘要:近期遇到很多朋友问及想从事Android开发,有些是大四的学生,有些是已经工作了,从事J2EE或者C++、C#等开发工作。对他们为什么要从事Android我不是很深入的了解,不过Android确实是一个近两年很火爆的热词儿,招聘职位很多,机会多、平均薪水比其他岗位要高一些。移动互联网是未来的一个趋势,越来越多的人开始使用智能手机,Android系统在智能手机领域里虽然用户体验不如IPhone,但价格还是令大多用户可以接受的。国内Android手机的使用者也非常多。希望未来从事Android开发,眼光还是不错的。 Android开发分三类: 1) 驱动开发 2) Android系统开发 3) .
阅读全文
摘要:从07年末到现在,Android如火如荼的发展,网上已经有很多Android基本技术的文章视频了。我就不重复发明轮子了。目前比较缺少深入讲解Android系统自带应用的分析资料。Android系统自带的应用对于开发类似功能的应用有很大的参考价值。 从关注Android到做Android系统开发、应用开发也有一年多的时间了,期间做手机时需要修复Android源代码的一些bug,对Android系统有了大概的了解,感觉到Android的确是一个设计很好、实现一般的系统。后来陆续参与开发了4个商用的APP。对多媒体这一块儿了解还是比较多一些。下面就从Android系统自带的音乐播放器开始讲解。希望.
阅读全文
摘要:由于apk是Android虚拟机加载的,它有一定的规范,加密apk后Dalvik无法识别apk了。 完全避免是不可能的,总有人能够破解你的代码。但还是有几种方式来提高被反编译获取代码的难度。 提高反编译难度的几种方式: 1. 关键代码使用jni调用本地代码,用c或c++编写,相对于class文件,so相对比较难于反编译。 缺点是很多搞java的程序员不太熟悉如何写c或c++代码,同时本地代码很难调试。出错容易导致整个虚拟机死掉,用户感受不好。 2. 混淆java代码。混淆是不改变代码逻辑的情况下,增加无用代码,或者重命名,使反编译后的源代码难于看懂。 网上开源的java代码混淆工具较多,自己上
阅读全文
摘要:没有IoC之前,有你才能有我,没有你就没有我;不懂得快乐法则之前,有你我才快乐,没你我不能活。有了IoC,我是霸主,符合我的标准才被拿来做我一个快乐的方式,我不依赖你,你要顺从我。这样不管你怎么样,我很快乐。因为你我相处的节奏(程序中对象的生命周期)由有我掌控。如果你懂得IoC,就知道怎样才会快乐。 过去,因为某些人或某些事让你快乐,这样你的快乐就被外在人事物所控制。 现在,把使你快乐的那些外在的东西抽象出来创造一个抽象的快乐模型,这个模型的关键有三个:一是简单,容易达成;二是有多种方式方法;三是这几个方法之间的关系式并列的,可替换的,是或者,不是同时。符合这些条件的可以被放进来,你想要快乐的
阅读全文
摘要:制作方法 一、ROOT无论是什么版本,首先要ROOT一下机器这是定制的前提先将LK2.02包中的LK2-02-1_update.zip和JE1-custom1-wp55580691.zip传入SD卡中根目录下。重新按住音量减、照相键、开机键,再次进入刷机模式,刷ROOT包中的i5700_LK2-02_PDA.tar刷好了之后会自动进入recovery模式(界面绿绿的,绿色的字),用方向键选择apply any zip from sd,然后选择LK2-01_update.zip,按OK键,然后会有提示让你按小房子键,按下小房子键即可。全部运行完毕后,返回选择第一项reboot重启。二、工具准备下
阅读全文
摘要:默认情况下,一个应用不管有多少个 Activity、Service 或其他组件,它们都是运行在一个进程上,但是我们可以安排 Service 运行一个新的进程上,但是不同进程之间应该如何通信呢?当需要在不同的进程之间传递对象时,应该怎么做呢?AIDL(Android Interface Definition Language) 便是解决这一问题的钥匙。使用 AIDL 并不是难事,但是比较繁琐,并且一不小心容易出错。好在 Android Dev Guide 的 Designing a Remote Interface Using AIDL 对这个问题讲解非常详细,再结合 Android APIDe
阅读全文
摘要:AIDL简单入门最近即将做的一个项目里面需要使用到AIDL(Android Interface Definition Language:接口描述语言)技术,自己早前只是简单瞄了一眼,我的理解它和java中的RMI的概念差不多,在这里我就不相信讲解什么事AIDL 了,网上这种介绍非常多。不过概念毕竟是书本上的东西,我决定亲自测试一下。废话不说了,直接开始 1、 既然AIDL是既然是可以在不同进程间进行操作,那么我们首先就需要准备两个项目,我们先来看看不同的两个项目结构式什么样子的。如图: 我们先暂且定义一个项目为“服务器端项目”,一个为“客户端项目”,其中紫色线框里面的东西是第一个需要注意的地方
阅读全文
摘要:Android Intent的几种用法全面总结Intent, 用法Intent应该算是Android中特有的东西。你可以在Intent中指定程序要执行的动作(比如:view,edit,dial),以及程序执行到该动作时所需要的资料。都指定好后,只要调用startActivity(),Android系统会自动寻找最符合你指定要求的应用程序,并执行该程序。下面列出几种Intent的用法显示网页:Uri uri = Uri.parse("http://www.google.com");Intent it= new Intent(Intent.ACTION_VIEW,uri);st
阅读全文
摘要:找到Android软件安装包中的class.dex: 把apk文件改名为.zip,然后解压缩其中的class.dex文件,它就是java文件编译再通过dx工具打包成的。 工具准备: 1、把dex文件反编译为jar文件的工具。(dex2jar) http://code.google.com/p/dex2jar/downloads/list 2、把jar反编译为java的工具。(JD-GUI) http://java.decompiler.free.fr/?q=jdgui 反编译步骤: 1、把class.dex拷贝到dex2jar.bat所在目录。运行dex2jar.bat class.dex,生
阅读全文
摘要:第五部分 OpenCore Player介绍 5.1 Player的组成 OpenCore的Player的编译文件是pvplayer/Android.mk,将生成动态库文件 libopencoreplayer.so。这个库包含了两方面的内容:一方是Player的engine(引擎),一方面是为Android构件的Player,这实际上是一个适配器(adapter)。engine的路径是engine/player;adapter的路径是android。5.2 Player Engine部分 OpenCore的Player Engine具有清晰明确的接口。在这个接口之上,不同的系统可一个根据自己.
阅读全文
摘要:第三部分 OpenCore OSCL简介 OSCL,全称为Operating System Compatibility Library (操作系统兼容库),它包含了一些在不同操作系统中移植层的功能,其代码结构如下所示:oscl/oscl|-- config :配置的宏|-- makefile|-- makefile.pv|-- osclbase :包含基本类型、宏以及一些STL容器类似的功能|-- osclerror :错误处理的功能|-- osclio :文件IO和Socket等功能|-- oscllib :动态库接口等功能|-- osclmemory :内存管理、自动指针等功能|-- o.
阅读全文
摘要:第一部分 OpenCore概述 OpenCore的另外一个常用的称呼是PacketVideo,它是Android的多媒体核心。PacketVideo是一家公司的名称,OpenCore是这套多媒体框架的软件层的名称。在Android的开发者层次看,二者的含义基本相同。对比Android的其它程序库,OpenCore的代码非常庞大,它是一个基于C++的实现,定义了全功能的操作系统移植层,各种基本的功能均被封装成类的形式,各层次之间的接口多使用继承等方式。OpenCore是一个多媒体的框架,从宏观上来看,它主要包含了两大方面的内容: * PVPlayer:提供媒体播放器的功能,完成各种音频(Aud.
阅读全文