安卓学习
文章平均质量分 76
syaijava
这个作者很懒,什么都没留下…
展开
-
从网络获取数据(2)使用SyncAdapter
之前我们讲的都是及时传输数据,这些随机的数据传输不利于管理,影响内存或者电池的使用,现在安卓提供了一个sync adapter框架,帮助管理和自动进行数据传输,并且在不同app间合作进行同步。还有如下特色: Plug-in architecture允许我们添加数据传输的代码到系统以可调用组件的形式 Automated execution允许我们基于一些标准的自动数据传输,包原创 2016-05-09 12:07:09 · 962 阅读 · 0 评论 -
AndroidManifes清单文件
每个应用必须有一个AndroidManifest.xnl文件(就是这个名字)在它的根目录。清单文件给安卓系统呈现关于我们的app的基本信息,在系统运行任何程序代码之前必须有的信息(为什么这么设计?)。除了其他事情,清单做下面的:它为应用程序命名Java package。这个package包名为应用充当唯一的标识。 它描述了应用的组件,--活动,服务,广播接收器和内容提供器,应用的组成。它命原创 2016-04-21 12:35:00 · 807 阅读 · 0 评论 -
Activity深入学习(1)生命周期
(1)活动的生命周期图各个生命周期的回调流程:在Training中,拿金字塔举例,又有了下面的生命周期金字塔,和上图配合更有利于我们理解活动的生命周期。有一点注意就是从暂停到可见,回调onPause到onResume从停止到可见,过程就复杂了许多:目前看到的已包括onStoped----onRestart----onstart------onResume。(还有原创 2016-05-05 12:24:55 · 283 阅读 · 0 评论 -
ContentProvider问题
1.sunshine的程序,自己定义了一个ContentProvider,只知道看别人的代码改,不知道怎么回事,结果在Manifest注册的时候,把Provider的权限注册错了,导致无法用,自己一直不知道问题,还以为应该在哪个地方初始化这个provider,真是丢人啊。<provider android:authorities="com.loveqiqi.sy.mysunsh原创 2016-05-04 20:17:40 · 243 阅读 · 0 评论 -
Process And Thread
当一个应用组件开启,并且这个应用没有其他任何组件运行,安卓系统为这个程序启动一个新的Linux进程,用单个线程进行。默认,同一个应用的所有组件在同一个进程和线程(叫做主线程)中。如果一个应用组件开启,并且这个应用已经有一个存在进程(因为这个程序的另一个组件存在),然后这个组件被在那个进程中启动并且使用同一线程执行。然后,我们可以安排程序中的不同组件在独立的进程中运行,并且我们可以为任何进程创建额外原创 2016-04-20 17:31:42 · 680 阅读 · 0 评论 -
使用sync adapte(二)创建一个Authenticator
Sync adapter框架假设我们sync adapter传输数据在关联一个账户的设备内存和需要登录权限的服务器内存直接。由于这个原因,框架期望我们提供一个组件叫做认真器作为我们sync adapter的一部分。这个组件插入安卓账户和权限框架并且提供一个标准的接口处理用户认证比如登录信息。即使我们的应用不实现账目,仍然需要提供一个认证器组件。如果不使用账户或者服务器登录,认证器处理的信息被忽原创 2016-05-04 12:37:16 · 316 阅读 · 0 评论 -
使用sync adapte(三)创建一个提供器
Sync adapter框架是被设计和设备数据工作,这些设备数据由灵活的和高安全的内容提供器管理。由于这个原因,sync Adapter框架期望使用这个框架的app已经为他的本地数据定义了内容提供器。如果sync Adapter框架尝试运行sync Adapter,并且我们的app没有内容提供器,我们的sync Adapter崩溃。如果我们在开发一个新的app从服务器传输数据到设备上,我们应该原创 2016-05-04 14:08:37 · 171 阅读 · 0 评论 -
使用Sync Adater(1)综述
在一个安卓设备和网络服务器之间同步数据可以让我们的应用显著的更有用和激发兴趣对用户来说。举例,传送数据到网络服务器是一个有用的备份,并且从服务器传送数据即使在设备离线的情况下用户也可以使用。在某些情况下,用户可能发现在网络接口输入和编辑他们的数据更简单然后让这些数据在他们设备上可用,或者他们想收集过时的数据然后上传到中心保持区域。虽然我们可以设计自己的系统用来实现数据传输,但是我们应该考虑使用原创 2016-05-04 11:15:14 · 224 阅读 · 0 评论 -
Setting
应用通常包含设置,允许用户修改app的特征和行为。举例,一些app允许用户指定是否通知可用或者指定多久应用同步云端的数据。如果想为我们的app提供设置,我们应该使用安卓的Preference API去建立一个接口,接口和其他安卓应用(包括系统设置)的用户体验一致。这个文档讨论如何建立app setting使用Preference API。Overview________________原创 2016-04-19 14:47:23 · 267 阅读 · 0 评论 -
Sunshine创建活动总结
1、这样定义一个活动,指定他的父类,这样他的actionbar会有一个返回,一直返回到父类???<activity android:name=".DetailActivity" android:label="@string/title_activity_detail" android:parentActivityName=".MainActivity" >原创 2016-04-18 22:13:22 · 183 阅读 · 0 评论 -
ContentProvider Basic
内容提供器管理访问结构化的数据。他们压缩数据,提供定义数据安全的机制。内容提供器是标准接口,连接数据在一个进程有代码运行在另一个进程。Content providers are the standard interface that connects data in one process with code running in another process.当我们想通过内容提供器访问数据原创 2016-04-18 16:43:09 · 925 阅读 · 0 评论 -
SunShine课程2总结
(1)在碎片的onCreateView填充根view的时候,使用 View rootVIew = inflater.inflate(R.layout.fragment_mail, container, false);而不是 View rootVIew = inflater.inflate(R.layout.fragment_mail, container);(默认只要roo原创 2016-04-17 20:17:06 · 429 阅读 · 0 评论 -
SunShine Style 问题
name="AppTheme" parent="@style/Theme.AppCompat.Light.DarkActionBar"> name="colorPrimary">@color/sunshine_blue name="colorPrimaryDark">@color/sunshine_dark_blue name="For原创 2016-04-29 11:50:39 · 249 阅读 · 0 评论 -
Sunshine学习 碎片
1.使用碎片为不同的屏幕设计布局,main布局加了一个layout-sw600dp,里面定义了一个Fragment和一个FragmentLayout,分别对应左边的详细列表和右边的单个信息。这样在Layout的布局中,定义一个Fragment,这个id必须要layout-sw600dp的一样,在detail中定义的一个FragmentLayout这个id必须要layout-sw600d原创 2016-04-28 10:21:21 · 297 阅读 · 0 评论 -
Activity深入学习(2)生命周期方法介绍
一、二、三、四、五、六、七、原创 2016-05-05 13:16:24 · 308 阅读 · 0 评论 -
Resource(一 OverView)
我们应该总是把我们的资源比如图片和字符串从应用代码中分离出来,这样就可以单独维护他们。分离资源也允许我们提供可替代的资源支持不同的设备配置,比如不同的语言或者屏幕大小,这变得越来越重要随着更多安卓驱动的有不同配置的设备变得可用。为了给不同的配置提供兼容性,我们必须在res/目录组织资源,使用通过类型和配置分组资源的各种子目录。对于任何类型的资源,我们可以为应用指定默认和多个替代性资源。l原创 2016-04-21 15:46:48 · 227 阅读 · 0 评论 -
从网络获取数据(1)从newThread到AsyncTask在到IntentService
概述安卓不允许在UI线程中发送网络请求,因此必须新启动一个线程。如果我们在活动中new Thread,这样就会有问题,这个线程会随着活动的生命周期结束而结束,如果活动的命比这个线程短,活动死掉了,线程还没有进行完,然后也不幸挂了,这样,获取数据的任务就相当于是失败了,这肯定是不可以的啊。所以我们需要使用一个后台进程,比如AsyncTask,但是这个AsyncTask也要能快速完成(最多原创 2016-05-06 16:55:52 · 695 阅读 · 0 评论 -
绑定服务学习
绑定服务主要是其他组件绑定服务(比如活动),然后发送请求,接收返回。这个服务主要是作为其他组件的佣人,不会再后台无限地运行。个人认为关键要学习的是如何绑定以及服务和组件之间的通信。 如何绑定到服务一个绑定的服务是Service类的实现,允许其他组件绑定和他通信。要为服务提供绑定,必须实现onBind回调方法。这个方法返回IBinder,定义了客户端可以和服务通信的程序接口。原创 2016-05-08 17:15:22 · 371 阅读 · 0 评论 -
通知服务的使用问题
1.服务大多数和通知一起,然后关键问题是PendingIntent的使用对于App demo,启动的一个类,竟然没有把整个屏幕覆盖,这不合理啊。自己试验没有这个问题。由于服务不会自己停止,我们要手动停止服务。服务生命周期重点还是绑定服务,以及服务和活动的通信啊。加油。原创 2016-05-07 15:16:29 · 206 阅读 · 0 评论 -
通知的综合应用
1.取消通知创建的时候调用setAuthCancek(true),用户点击自动消失,多好The user dismisses the notification either individually or by using "Clear All" (if the notification can be cleared).The user clicks the notificat原创 2016-05-07 11:55:42 · 181 阅读 · 0 评论 -
Intent深入学习
启动活动有一种是startActivityForResult,这个需要掌握。启动服务,总是使用显式意图。intent filter表示这个组件可能要接受的意图的类型。也就说,意图有type??什么意思,如果不指定intent filter,只能显示启动了。建立一个意图:Component name:在显示意图,表示明确启动的类,使用setComponent,setClass,se原创 2016-05-06 21:59:35 · 620 阅读 · 1 评论 -
Resource Type
String ResourcesString 最简单的字符串,可以从程序或者其他资源文件(比如一个XML布局)引用。Note:字符串是简单的资源,使用它的name属性引用。所以可以在一个XML文件混合String资源和其他简单资源(比如color),在一个元素下面。使用例子:XML file saved at res/values/strings.xml:原创 2016-04-22 12:36:18 · 1408 阅读 · 0 评论 -
Handling Runtime Changes
一些设备的配置可以在运行时改变(比如屏幕方向,键盘可用性和语言)。当这样的变化发生,安卓重启运行的Activity(onDestroy方法被调用,随后是onCreate)。重启行为设计为帮助我们的应用适应新的配置,通过自动加载匹配新设备配置的替代资源。为了合理处理重启,我们的活动在他的正常活动生命周期恢复之前状态是非常重要的,在生命周期中,安卓调用onSaveInstanceState在它销毁原创 2016-04-22 11:54:14 · 185 阅读 · 0 评论 -
数据存储(3)自定义内容提供器
使用系统的内容提供器先不讲,这里讨论自定义内容提供器。因为sunshine使用了自定义内容提供器,那就要想想了,SQLite数据库完全可以满足需要了,为什么要加个内容提供器呢,内容提供器是对SQLite的封装,也就是说,封装了之后,可以提供给别人用的,基于下面的原因: 想为其他应用提供复杂数据和文件 想让用户从我们的应用拷贝复杂数据到其他应用 想使用搜索引擎提供自定义搜索原创 2016-05-06 12:50:51 · 403 阅读 · 0 评论 -
sunShine问题
1。删除之前的天气数据,防止数据量过大。那么每次刷新,都插入14天的数据,这时候数据库没有被重新清除吗,每次操作数据库的过程是怎么样的?需要使用数据库调试工具看看数据库的内容?2.使用ACTION_VIEW打开地图,每次需要传入经纬度,这个sunShine结果传的到波兰去了。3.日期calender处理的学习4.通知点击之后应该消失,还需要学习下5.junit测试学习6.内原创 2016-05-05 10:37:31 · 445 阅读 · 0 评论 -
数据存储(2)使用SQL数据库
Define a Schema and Contract使用SQL数据库最重要的原则是Schema(架构),数组库如何组织,其实就是表结构。我们一般会用一个同伴类,Contract 类,明确指定架构的布局以一个系统的和并且自我描述的方式。一个Contract类是定义URIs,tables,columns这些常量的容器。Contract类允许在同一个包的不同类之间使用同一原创 2016-05-06 11:37:30 · 455 阅读 · 0 评论 -
数据存储(1)--键值对
SharedPreference使用getSharedPreference(name,mode)或者这个SharedPreference,下面的例子,第一次显然是没有这个文件的。这个方法可以在app中的任何Context调用,这个方法是属于某个Context的,就是需要有上下文,sunshine的工具类这个方法:public static String getPreferredLo原创 2016-05-06 10:28:39 · 955 阅读 · 0 评论 -
Providing Resource
我们应该总是从我们的代码分离应用资源,比如图片和字符串,这样我们就可以单独维护他们。我们也应该为特定的设备配置提供替代的资源,通过在特殊命名的资源目录分组。在运行的时候,安卓以当前配置为基础使用合适的资源。举例,我们可能想提供一个不同UI布局取决于屏幕大小或者不同的字符取决于语言设置。一旦我们分离我们的应用资源,我们可以使用在工程R类生成的资源ID访问他们。如果在程序使用资源在Accessin原创 2016-04-21 19:01:30 · 1291 阅读 · 0 评论 -
深入学习Fragment
替换或者删除Fragment如果替换或者删除碎片,在提交之前调用transaction.addToBackStack(null);这样,用户导航返回就可以恢复,取消变化。如果调用了,被替换或者删除的碎片不被销毁,而是停止了,用户返回的话重启,这样会快些吧,碎片的生命周期:原创 2016-05-05 20:30:35 · 198 阅读 · 0 评论 -
SunShine学习总结
(1)勉强加上了ContentProvider,发现一个问题就是自己的第一次进入没有把数据刷出来,然后各种调试,最后发现我在碎片onCreate方法中调用了更新数据的函数updateWeather这个时候,异步任务执行返回@Overrideprotected void onPostExecute(String[] result) { if (result != n原创 2016-04-26 16:48:03 · 484 阅读 · 0 评论 -
Android Studio使用问题
1.昨天使用Android Studio的时候,插上手机,运行,提示 the deivice is not compatible错误,重启软件也不行,没试重启手机,不过查了一下,关闭手机的调试功能,然后在重新打开,就可以了。原创 2016-03-25 10:06:23 · 205 阅读 · 0 评论 -
Activity
一个活动是一个应用组件提供一个屏幕,用户可以跟屏幕交互做一些事情,比如拨打电话,或者发邮件、看地图等。每一个活动都会赋予一个窗口来绘制它的用户界面。这个窗口通常会填满屏幕,不过也可能比屏幕小,悬浮在其他窗口之上。 一个应用通常包含许多个活动,这些活动松散的绑定在一起。通常,会有一个活动作为main Activity,当程序第一次启动的时候呈现给用户。每个活动可以启动其他活动来提供原创 2016-04-02 14:08:05 · 324 阅读 · 0 评论 -
TogleButton 和Switch
很简单,不过做的好看不容易,自己照着疯狂java的,真难看,关键还是美啊,算了,不管了。另外就是时间,和之前的一样,OnCheckedChangeListener。还是不错的。可以试试。原创 2016-03-21 21:04:48 · 194 阅读 · 0 评论 -
Menu和ActionBar
Menus是许多应用程序中的常见的用户界面组件。为了提供一个熟悉的和一致的用户体验,应该在Activity中使用menu的api来展示用户动作和其他选择。3.0之后,安卓不在要求提供一个专用的菜单按钮,由于这个变化,安卓应用应该由传统的6个菜单面板转变为使用action bar展示通用的用户操作,所以这么说,action bar是非常重要的。虽然一些菜单的设计和用户体验改变了,但是他们的语原创 2016-04-02 13:19:50 · 229 阅读 · 0 评论 -
Checkbox 和RadioButton
CheckBox就是选择框,这个估计在以后的ListView,很有用,这里感觉并没有什么太大的作用,就是简单的实验,很简单。主要是响应时间,和button一样,一种是android:onClick,设置这个属性,写一个方法,public void 有个view参数,然后下面是demo,就可以了,public void onCheckboxClicked(View view) {原创 2016-03-20 22:00:48 · 368 阅读 · 0 评论 -
Nine-patch图片的制作
这是一个可扩展的位图,安卓会自动调整大小来适应内容,左边和上面画线表示这个图片在哪个方向可以扩展,交接的矩形,两个方向都能扩展,右边和下面定义文本显示的位置,可以保证你button的显示只在你定义的这个区域中,这是很好,不过,图片的缩放就不是很明白了,不知道缩放这么弄的,这个以后在仔细想想。制作工具在SDK tools下,自己试试吧。原创 2016-03-20 21:29:37 · 173 阅读 · 0 评论 -
Button
我们可以设置Button文字或者有图的,有图可以适应ImageButton,当然也可以使用 background属性,或者官网的drawableLeft属性。设置图片的样式还是需要慢慢搞的。 然后,响应点击事件,首先可以设置onClick方法,在view所在的Activity中声明同名的方法,这个方法必须是publi,void,而且必须要有一个View参数,这个系统会自动传过去吧,原创 2016-03-20 20:02:01 · 152 阅读 · 0 评论 -
Dialogs
Dialogs是一个弹出来的小的窗口,让用户做决定或者输入额外的信息。一个对话框不会暂满整个屏幕,通常被用来一些需要用户在他们执行前动作的事件。Dailog是基本的父类,但是我们应该避免直接实例化它,替代的,使用它的子类。第一个是AlertDialog,一个可以展示标题,最多三个按钮,一些选项,或者一个自定义的布局文件。官方网站推荐使用DialogFragment,方便管理,这个要学习原创 2016-03-31 21:24:47 · 367 阅读 · 0 评论 -
RelativeLayout
相对布局应该的所有布局中最重要的了,它让子元素展现在相对的位置。每个view的位置都可以由姊妹元素指定(比如to theleft 或者bellow 另一个view),或者相对于父RelativeLayout(比如aligned to the bottom, left or center),应该是layout_gravity吧, 相对布局是非常有用的工具去定义用户界面,因为它可以消除原创 2016-03-19 11:26:28 · 199 阅读 · 0 评论 -
FrameLayout
FrameLayout是占据屏幕一块区域去展示一个item。通常,应该只存放一个view,因为我们很难组装多个子元素让他们在不同的屏幕上不产生重叠。然而,你可以通过设置layout_gravity属性来控制多个子元素。Child views are drawn in a stack,像栈一样,先添加的在上面。FrameLayout的大小是他最大元素的大小,加上padding,无论原创 2016-03-19 10:42:25 · 434 阅读 · 0 评论