任何问题请联系WX:uu16853

买模板送网站采集器 让你轻松放开双手运营网站!

购买更多有优惠!

如何在iPhone、iPad和Android上使用WordPress App

您想在iPhone、iPad或Android设备上使用WordPress应用程序吗? 有一款适用于WordPress的移动应用程序,可以让你在旅途中更改WordPress网站。 在本文中,我们将向您展示如何在您的移动设备上使用WordPress应用程序。我们还将讨论使用WordPress移动应用程序可以做和不能做的事情。 然而,这种用户界面并不适合移动应用。 另一方面,WordPress应用程序被设计为触摸友好、移动优化和易于使用。它有一个直观的用户界面,在移动设备上创造了良好的用户体验。 在没有实体键盘的情况下写作一直是许多博客作者面临的问题。这款应用程序将设备的原生触摸键盘与WordPress格式按钮结合在一起,使在触摸设备上撰写帖子变得简单和容易。 注:WordPress.com托管平台背后的Automattic公司负责维护WordPress移动应用程序。 您将被要求在下一个屏幕上输入您的站点地址。 输入完整的站点地址,包括https://部分。 提示:如果你不确定你的站点地址,你可以通过登录到你的WordPress管理区找到它。 之后,请转到设置?常规页面上,您将找到您的站点地址信息。 该应用程序现在将尝试联系您的WordPress网站。 之后,它将向您显示登录屏幕。只需输入您的WordPress登录凭据,然后点击‘继续’即可。 成功登录后,您将进入WordPress应用程序仪表板。 您将看到管理您的WordPress帖子、页面和评论的链接。 然后,您可以编辑任何博客文章或点击添加新的‘+’按钮来创建新的博客文章。 这将启动针对移动设备优化的WordPress块编辑器版本。在这里,你可以使用手机的原生键盘和底部的格式工具栏来写一篇新的帖子。 你可以点击‘+’按钮为你的帖子添加区块。 移动区块编辑器提供了WordPress站点上所有可用的公共区块。 轻敲‘+’按钮将调出积木插入器。 从这里,您可以将图像、图库、视频、标题、栏或任何其他块添加到您的帖子或页面。 例如,点击图像块将允许您在博客帖子中添加图像。 你可以从手机或WordPress媒体库中选择一张照片,也可以使用相机拍摄新照片。 这款应用还允许你更改其他帖子选项。 要访问这些选项,只需点击编辑屏幕右上角的三点菜单,然后选择“帖子设置”即可。 这将调出POST SETTINGS菜单。 从这里,你可以添加类别和标签,挑选一张特色图片,更改帖子状态,以及其他选项。 WordPress应用程序有一个内置的自动保存功能,可以将你的帖子保存在设备本地。 编辑完博客文章后,只需点击右上角的“发布”或“更新”按钮即可。 应用程序现在会将帖子上传到您的网站。你可以在浏览器中访问你的网站,看看它的运行情况。 这将启动WordPress媒体库,您将能够看到媒体库中的所有媒体文件。 你可以编辑、删除媒体文件,甚至可以使用Add‘+’按钮从手机上传新的照片和视频。 你可以通过访问应用程序仪表板上的“评论”选项卡来查看你网站上的所有评论。 您将看到您的所有评论,包括最近的、批准的和等待审核的。 你可以点击任何评论来查看更多选项。 这将允许您编辑评论、批准或不批准、将其标记为垃圾邮件或添加回复。 WordPress和Jetpack应用程序的区别 你会注意到WordPress应用程序会提示你注册WordPress.com并安装Jetpack应用程序。 这是因为WordPress.com主机平台和Jetpack背后的Automattic公司开发了WordPress应用程序。 虽然这两个应用程序都能完美地运行在自托管网站上,但你可以通过创建WordPress.com ID并在手机上安装Jetpack应用程序来获得额外的功能。 注:你不需要在你的WordPress站点上安装Jetpack插件。然而,这种情况在未来可能会改变。 Jetpack应用程序允许您使用该应用程序安装、激活和停用插件。但是,它不允许您访问任何插件设置页面。 虽然你可以在应用程序中安装和删除插件,但你不能像在桌面浏览器上那样使用它们。 有可能完全从应用程序运行WordPress吗? 不是的。目前,仅使用WordPress应用程序是不可能高效运行WordPress网站的。 例如,你不能使用该应用程序管理插件。WordPress插件是WordPress网站的重要组成部分,你需要它们来扩展你网站的功能。 你也不能访问定制的帖子类型,查看SEO选项,使用封面图片,使用插件创建的区块,等等。 为什么以及何时应该使用WordPress应用程序? 虽然WordPress应用程序不足以有效地运行整个网站,但它提供了一个易于使用的界面,可以在离开计算机的情况下编写内容、上传照片和管理评论。 它也可以在前往连接程度较低的地方时使用。你可以离线使用一些应用程序功能,将内容保存为本地草稿。 它可以作为一个配套的应用程序,在移动中创建内容,并管理日常任务,如审核评论。 解决WordPress应用程序问题 WordPress移动应用程序中的大多数登录和连接问题都是由于无法访问XML-RPC端点而发生的。 […]

Android 3.0自带的天气预报例子代码 Android开发技术

Android 3.0正式版API Level 11中加入了一个天气预报例子,下面是manifest.xml中的关键代码,只是少了xml的编码头: <manifest xmlns:android=”http://schemas.android.com/apk/res/android” package=”com.example.android.weatherlistwidget”> <uses-sdk android:minSdkVersion=”11” /> <application android:label=”Weather Widget Sample”> <receiver android:name=”WeatherWidgetProvider“> <intent-filter> <action android:name=”android.appwidget.action.APPWIDGET_UPDATE” /> </intent-filter> <meta-data android:name=”android.appwidget.provider” android:resource=”@xml/widgetinfo” /> </receiver> <service android:name=”WeatherWidgetService” android:permission=”android.permission.BIND_REMOTEVIEWS” android:exported=”false” /> <provider android:name=”WeatherDataProvider” android:authorities=”com.example.android.weatherlistwidget.provider” /> </application> </manifest> 这里WeatherDataProvider.java的源码为主要是ContentProvider相关的处理,这里作为appWidget的receiver class WeatherDataPoint { String city; //城市 int degrees; //度数 WeatherDataPoint(String c, int d) { city = c; […]

Android裁剪图片最简单方法 Android开发技术

   很多网友平时如果需要在Android平台下开发处理图片裁剪的应用,如果感觉实现的逻辑比较麻烦,比如说需要写类此Win32下的橡皮筋类CRectTracker来设置裁剪区域,这里Android开发网给大家一个最简单可靠的方法,通过下面的Intent调用系统的Camera程序的裁剪功能实现图片修剪。   Intent intent = new Intent("com.android.camera.action.CROP");      intent.setClassName("com.android.camera", "com.android.camera.CropImage");     不过这里Android123提醒大家可能会出现无法找到Activity的android.content.ActivityNotFoundException异常,这是由于Android内部的gallery和camera都有处理,可以尝试另一种URI,com.android.gallery的com.android.camera.CropImage,在setClassName时,具体的代码为 final Intent intent = new Intent("com.android.camera.action.CROP"); intent.setClassName("com.android.camera", "com.android.camera.CropImage"); intent.setData(Uri.fromFile(mFile)); intent.putExtra("outputX", width); intent.putExtra("outputY", height); intent.putExtra("aspectX", width); intent.putExtra("aspectY", height); intent.putExtra("scale", true); intent.putExtra("noFaceDetection", true); intent.putExtra("output", Uri.parse("file:/" + mFile.getAbsolutePath())); startActivityForResult(intent, REQUEST_CROP_IMAGE);  

Android Zip文件解压缩代码 Android开发技术

   在Android平台中如何实现Zip文件的解压缩功能呢? 因为Android内部已经集成了zlib库,对于英文和非密码的Zip文件解压缩还是比较简单的,下面Android123给大家一个解压缩zip的java代码,可以在Android上任何版本中使用,Unzip这个静态方法比较简单,参数一为源zip文件的完整路径,参数二为解压缩后存放的文件夹。 private static void Unzip(String zipFile, String targetDir) {   int BUFFER = 4096; //这里缓冲区我们使用4KB,   String strEntry; //保存每个zip的条目名称    try {    BufferedOutputStream dest = null; //缓冲输出流    FileInputStream fis = new FileInputStream(zipFile);    ZipInputStream zis = new ZipInputStream(new BufferedInputStream(fis));    ZipEntry entry; //每个zip条目的实例     while ((entry = zis.getNextEntry()) != null) {      try {       Log.i("Unzip: ","="+ entry);      […]

Android 3.0开发用的平板推荐 Android开发技术

  随着Android 3.0的平板不断曝光,很多公司开始介入Android平板电脑的开发。这里Android123就市面上主流的平板做一个简单的分析。   一线品牌: 摩托罗拉Xoom、三星Galaxy Tab 8.9和Galaxy Tab 10.1 、LG Optimus Pad(LG G-Slate)、HTC未知型号的产品。   二线品牌: 宏碁Iconia Tab、华硕Eee Pad Transformer等。   由于Motorola Xoom是CDMA EVDO网络的设备,同时有传闻将在6月份推出Xoom第二代产品,如果喜欢Xoom的网友可以考虑购买一个WiFi版本。而三星Galaxy Tab 8.9和10.1这里Android开发网推荐购买。在二线品牌中我们选择了老牌的笔记本和上网本制造商 Acer和Asus可以保证品质,同时华硕的Eee Pad Transformer支持外接笔记本键盘,可以变身一个“笔电”   而对于部分市场上的Android 2.x平板作为开发完全不推荐大家够买   三星Galaxy Tab P1000   同时目前是Android 2.x可能升级3.0的产品有   联想LePad、HTC Flyer。   最终购买的结论是Android平板考虑到固件升级及时,以及质量保证建议购买上述一线品牌产品,同时CPU尽量是NVIDIA Tegra2 A9双核,RAM在1GB,屏幕在1280×800,预装Android 3.0或3.0.1系统的平板设备。

Android Theme主题样式开发注意点 Android开发技术

  Android默认情况下提供了一些实用的主题样式,比如说Theme.Dialog可以让你的Activity变成一个窗口风格,而Theme.Light则让你的整个Activity具有白色的背景,而不是黑色那么沉闷。具体使用方法很简单在Androidmanifest.xml文件中对你的Activity节点上加入些代码,如图所示   部分代码为 android:theme="@android:style/Theme.Dialog"  和  android:theme="@android:style/Theme.Dialog"  ,这里Android123提醒大家,有关@后面是android:的定义均在Android内部的Framework层由系统自带。

控制软键盘显示和隐藏 Android开发技术

  如何用Java代码控制Android软键盘的显示和隐藏呢? 过去我们在 EditText中显示隐藏Android输入法窗口 提到过,部分网友可能没有太注意。 InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);imm.hideSoftInputFromWindow(myEdit.getWindowToken(), 0); //myEdit是你的EditText对象  下面就可以通过下面方法可以恢复显示  boolean  showSoftInput(View view, int flags, ResultReceiver resultReceiver) boolean  showSoftInput(View view, int flags) void  showSoftInputFromInputMethod(IBinder token, int flags)

WakeLock使用方法示例代码 Android开发技术

  Android中提供了一个名为WakeLock的类在android.os.PowerManager.WakeLock中,从名字来看WakeLock是唤醒锁的意思,它可以控制屏幕的背光开关,所以在电源管理类。   WakeLock实例化方法比较简单,因为是系统的远程服务,通过下面的代码来构造 PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);  PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK, "Android123"); //最后一个参数为实例名,可以换成其他的。  wl.acquire();  //唤醒点亮屏幕 //这个期间屏幕将点亮 wl.release(); //恢复屏幕到黑暗  当然Android考虑到安全并不是说开发者有了权限,就可以随意的控制屏幕的背光显示或无,只有通过acquire点亮的背光才能使用release让其关闭背光,如果直接调用release方法关闭屏幕将会产生一个异常。  从Android 2.1 API Level7开始增加了一个判断屏幕是否处于点亮状态可以使用public boolean isScreenOn ()这个方法,代码为 PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);boolean isScreenOn = pm.isScreenOn();  而对于Android 2.2 API Level为8时增加了一个reboot(),可以重启手机进入恢复模式,同时你需要申请权限 <uses-permission android:name="android.permission.REBOOT"></uses-permission> 来实现,不过Android开发网不保证该方法在所有固件上有效,部分厂商考虑到安全并没有开发这个重启方法。

设置ScrollView滚动条的颜色 Android开发技术

  很多开发者在做Android UI时不知道如何设置ScrollView滚动条控件的滑块颜色,其实通过ScrollView的xml布局属性android:scrollbarThumbVertical可以关联一个drawable对象,比如说在ScrollView中我们有   android:scrollbars="vertical"   //滚动条是垂直的  android:scrollbarThumbVertical="@drawable/red"  //垂直滚动条颜色为red,red可以是一个png的图片或用shape组成的xml图形文件组成的drawable对象。

Android 2.3系统自带高清UI图标下载 Android开发技术

  有关Android 2.3系统自带图标素材,原始高清晰PNG透明格式图标这里Android开发网整理如下,     原始PNG格式图标,Android123本地下载 http://down.android123.com/android-icon.rar (1.59MB)  

Android xliff和字符串资源 Android开发技术

  很多Android开发者可能会发现部分资源字符串在/res/values/string.xml中包含有类似xliff的节点,Xliff是XML Localization Interchange File Format 的缩写,中文名为XML本地化数据交换格式,对于在Android的资源字符串中,可能会有类似下面的 <xliff:g id="cwj">%1$s</xliff:g> 这里,id我们可以随便定义,后面的%1$s有点像C#中的字符串格式化标志,这里1%表示这是第一个可替换量,如果一个String中有多个需要替换的变量,可以为   <string name="info">开发者<xliff:g id="name">%1$s</xliff:g> 来自 <xliff:g id="company">%2$s</xliff:g> 公司</string>   对于上面的字符串,在工程中我们可以使用String strInfo=getResources().getString(R.string.info,"cwj","android123"); 来拼接,返回一个新的字符串strInfo中。

Android Canvas绘图抗锯齿解决方法 Android开发技术

   对于Android来说Canvas一般大量用于自定义View和游戏开发中,对于图形的基础绘制类,提供的drawText、drawBitmap以及drawCircle都需要抗锯齿处理才能让人满意,下面Android123将他们分为两大种情况。  一、包含Paint参数情况时,对于drawText、drawBitmap这样的方法,一般最后一个参数为Paint对象,Paint对象一般用于设置笔刷颜色和大小,同时包含了抗锯齿的方法,比如说objPaint.setAntiAlias(true);  这个方法执行后即可有比较明显的改善。  二、部分方法没有Paint参数,比如说setDrawFilter这个方法,它的参数只有 PaintFlagsDrawFilter对象,我们自己构造一个新的对象,比如说new PaintFlagsDrawFilter(0,Paint.ANTI_ALIAS_FLAG|Paint.FILTER_BITMAP_FLAG)这样就过滤器可以让文本和位图经过圆滑处理。

Android 3.1 USB配件开发之介绍篇 Android开发技术

  从Android 3.1开始将支持USB配件连接到Android设备,通过附件通讯协议,同时在Android 2.3.4中通过附加库也可以兼容这些功能,目前可以在Nexus S、Nexus One上进行开发测试,可以实现两种工作模式,分别为Host Mode和Accessory Mode,前者Android设备将作为宿主为USB设备供电,比如连接一个键盘,而Accessory Mode将作为附件模式,这时可能Android设备变成一个辅助的设备,比如作为PC上的手写板,这时PC为Android设备供电,如下图所示:     无论何种模式,Android设备都和连接的USB设备进行类似串口的通讯,对于调试,我们仍然可以使用adb来实现,比如说连接Android设备到PC上,输入  adb tcpip 5555  接着输入  adb connect <device-ip-address>:5555  其中device-ip-address为android设备的ip地址, 如果你的设备是监听USB连接,可以输入 adb usb

Android 3.x屏幕兼容性设计 Android开发技术

  对于Android 3.x honeycomb系统来说屏幕的兼容性很重要,这里目前我们就主流的Android 1.5~2.3.4的软件如何兼容Android 3.0有关屏幕分辨率和资源的兼容设计方法如下:    首先设置选择主流的Android 2.2 SDK,API Level为8,如果需要兼容  <uses-sdk  android:minSdkVersion="3"  android:targetSdkVersion="8"/> ,有关layout仍然仅为两种横屏和竖屏,这里Android123再次提醒,大多数的平板在横屏操作上的时间大幅超越竖屏,这点测试时需要注意,设置drawable版本,注意-v6如图所示:     有关其他的细节可以参考 让你的应用兼容Android 3.0系统

Android 3.1和iOS 5以及WP7.1 Mango对比 Android开发技术

  很多开发者对Android 3.1、iOS 5和Windows Phone 7.1 Mango之间新特性的对比还不是很清楚。下面Android123就三大平台的最新版开发特性作对比:    目前就发布时间来看 Android 3.1已经发布,iOS 5还要过几个月等iPhone 4S上市,而WP7的芒果估计要到9月份了   1. NFC移动支付,目前Android 2.3开始就支持NFC,而iOS 5仍然没有动作,而可怜的Windows Phone 7.1 Mango似乎还不知道NFC是何物。   2. ADK开发,对于周边硬件的开发,Google Android提供了ADK开发包,我们可以当做是一个USB的扩展辅助,帮助Android识别其他设备的USB通讯协议,如果哪天Google整出个类似DDK那就更有意思了,而iOS似乎只对知名厂商提供支持和授权,WP7.1这些还看不到任何迹象,最终应该还是只有OEM能开发吧。   3. 多任务支持,Android与生俱来就支持多任务,这似乎也是Linux的优势,而iOS从4开始支持伪多任务,就是让当前线程挂起处于休眠状态,处理完其他任务后再唤醒,这样iPhone一直无法挂QQ,不过Windows Phone 7.1开始支持多任务和Android一样,可以挂QQ了。   4. 来电控制,Android提供了开放的API,可以开发来电防火墙,显示归属地,或者是处理自己的应用当来电时保存状态,挂断电话后的状态做处理,而iOS必须越狱并使用非官方SDK方式实现,目前Windows Phone Mango对电话方面没有任何支持,而早期的Windows Mobile我们可以方便的处理RIL层,似乎微软现在封闭了。   5. 高性能计算,Android从1.5开始支持NDK,可以使用C/C++开发性能敏感的算法或3D GL图像相关的显示,从NDKr5开始支持精简的C++ STL标准库,iOS使用的Objective-C也可以很好的支持ISO C和C++,不过目前WP7只能用C#或VB.NET这样托管语言编写,而早期的Windows Mobile是支持Dot Net Framework和Native C开发的,似乎高端的体验度要大打折扣了。   6. 界面定制,Android可以很轻松灵活的更换界面主题,而iOS的封闭官方是不允许的,WP7由于界面比较简洁功能较单一,并不是很有竞争力,至少Android变身iOS和WP7的界面来说很轻松,而桌面的Widget小插件的趋势和优势已经显现出来。微软作为小插件的领跑者早在Windows Vista推出了Gadget的侧边栏小插件开发接口,但这一概念似乎在Windows Phone上荡然无存。   7. 固件升级,Android目前的固件升级是比较头疼的,由于厂商较多,改变的更多,硬件的限制不是很严格导致固件不统一,目前Google不开放Android honeycomb的代码也是防止山寨厂商推出低配的平板降低Android […]

微软推出Android转WP7白皮书和API对照表 Android开发技术

   很多国内网友看好微软下一代Windows Phone开发,同时微软也将PC、游戏机和移动设备的Metro UI应用于下一代的Windows 8系统,再推出了iPhone转WP7的白皮书后,目前Android转Windows Phone 7开发的白皮书以及API映射对照表目前已经可以浏览,不过从对照来看WP7 Mango的API完善度只有Android 1.0的十分之一不到是可以替代的,目前都3.1了,等Mango发布时估计IceCream Sandwich都发布了,也就是说微软Windows Phone 7 Mango的能开发的调用的API十分少,大大限制了开发者的设计功能,不过用WP7做一些RSS阅读器,写点玩具类的应用还是可以的。   PDF格式Windows Phone 7 Guide for Android Application Developers 下载 (4MB)   Android API和Windows Phone 7的API对照表,目前显示的是Android 2.3姜饼版的API,在线阅读 http://wp7mapping.interoperabilitybridges.com/Home/Library?source=Android      目前总体来看微软似乎在Windows Phone 7上的两宗罪,归结为不支持Native开发,API十分不完善或者说就是封闭,相对于iOS和Android来说威胁甚微。

Android Framework学习指导(二) Android开发技术

  对于Android Framework层的学习,在上一次的 Android框架层学习指导 中我们已经讲到了基础的结构和定义,但是对于Framework层的核心还有哪些呢?   1.  在Android源码的base中,我们可以看到每个目录进去,都会有java和jni两个文件夹,后者对于初入android框架的学习十分有帮助,如果你刚开始了解NDK和JNI相关的不妨读读Google的代码,这对于代码风格和质量的提高都很有帮助。  2.  对于NDK和JNI来说,编译我们需要一个好的环境,这里还是推荐基于Unix架构的Linux或Mac OS编译,Android123推荐放弃Windows下的Cygwin和MingWin可以节省不少的时间,对于编译来说先掌握mk文件的结构比较重要,这里可以直接查看base目录中每个jni子目录的android.mk文件即可,在Linux下mk文件这种脚本方式对于过去一些Visual Studio用惯的可能感觉有些原始。  3.  当然学习Android Framework可以帮助改进系统,定制自己的固件,部分核心的库是独立的external包,比如说 SQLite、Webkit、zlib、libpng这些Android使用第三方开源的库都是在platform/external/xxx.git中。xxx代表最终的库名。  4. 对于部分的核心库,上次我们在Android框架层学习指导一文中由于篇幅并没有提到,其实在base目录下面的native中可以看到很多系统结构的定义和实现。Android开发网推荐深入掌握Android这个namespace中的所有结构,这样的基础是十分必要的。  5. 最后我们附上Base目录的结构图,希望对大家有用:   ├─api├─build├─cmds│  ├─am│  │  └─src│  │      └─com│  │          └─android│  │              └─commands│  │                  └─am│  ├─app_process│  ├─backup│  ├─bmgr│  │  └─src│  │      └─com│  │          └─android│  │              └─commands│  │                  └─bmgr│  ├─bootanimation│  ├─bugreport│  ├─dumpstate│  ├─dumpsys│  ├─ime│  │  └─src│  │      └─com│  │          […]

Android JNI学习指导 Android开发技术

  很多网友对Android JNI和C++开发相关的技术很感兴趣,由于JNI大部分技术都是针对Windows PC的,对于Android的JNI学习除了SDK中的一些例子外,其实大家完全可以通过Android源码中的base.git中根目录下的/core/jni文件夹下的cpp和h文件进行学习,这里是Google Android开发团队进行编码,在代码质量和稳定性方面都有保障,这里Android123推荐大家通过这些代码了解底层相关实现细节,虽然是C++的代码不过编码风格还是C的实现,对于基础学习,Android开发来说,开源方面的优势大幅超越封闭的iPhone和Windows Phone,同时对于间接使用Android Dalvik的Ophone OS 3、WebOS来说还是相当好的,当然有兴趣的网友可以移植Dalvik到Meego。

Nokia确认放弃Meego,可能考虑Android Android开发技术

  诺基亚确认将会放弃Meego,虽然N9和N950的发布可能让我们看到Nokia的Linux战略,但是近期诺基亚CEO埃洛普确认将放弃MeeGo系统,这无疑让我们想到N9或N950将成为N900,目前来看市场上似乎单独的手机厂商推出操作系统竞争力不是很大,比如三星Bada,早期时间摩托罗拉推出过Linux内核的智能机但最终还是失败了,不过让我们意外的是有一个未确认真实性的是Nokia正在测试一款代号为 NB72 的Android手机,使用了Android 2.2内核,虽然外观有些像N9但是摄像头的位置并不是在右下方,从运行界面来看可能是 运行下Android的恶作剧,当然也不排除Nokia不考虑Android,毕竟作为硬件厂商跑更多的操作系统,对于各个系统的发展有相关的制衡作用,目前Nokia维护着Symbian、Meego以及Windows Phone 7,最终加入Android的设计,看来Nokia的产品线还是不少的。    目前Nokia对Meego的态度是这样的,虽然N9运行的是Meego,但是应用使用了Qt去编写,除了Windows Phone 7无法支持Qt运行库外,Symbian和Meego还是能够跑Qt的,至于Meego上加个Android的Dalvik,目前来看由于Google的对于底层框架的在Android版本上 越来越紧密,即使Meego跑了Dalvik虚拟机,兼容性将会打打折扣,所以不要对Meego抱有太大的期望。

Android Dock底座应用开发 Android开发技术

  很多网友可能发现部分Android手机或平板支持底座,目前比较主流的有摩托罗拉系列,中低端的Milestone和Milestone 2代均可以使用充电底座或多媒体底座,网购大概50元左右。而中高端的Atrix 4G则支持HD或物理键盘底座,在我们连接底座后,一般使用官方固件的Android手机会自动切换到底座的桌钟模式,会显示提前、时间或闹铃等信息,如果通过代码获取底座插拔状态呢? 下面Android123给大家一个简单的思路。    在Androidmanifest.xml文件中,我们在自己应用的主activity中,加入下面的代码              <meta-data android:name="android.dock_home" android:value="true" />               <intent-filter>                <action android:name="android.intent.action.MAIN" />                <category android:name="android.intent.category.DEFAULT" />                <category android:name="android.intent.category.LAUNCHER" />                <category android:name="android.intent.category.DESK_DOCK" />            </intent-filter>   大家可以看到,上面的     <action android:name="android.intent.action.MAIN" /> 和  <category android:name="android.intent.category.DEFAULT" /> 以及  <category android:name="android.intent.category.LAUNCHER" /> 均已经有了在默认创建的工程中。    不过对于底座应用的支持还有几个action,这些是从API Level 8开始支持的,对应Android 2.2的SDK,大家可以在android.app.UiModeManager类中找到比较重要的4个广播事件,ACTION_ENTER_CAR_MODE 进入行车模式,ACTION_EXIT_CAR_MODE  退出行车模式,其中 ACTION_ENTER_DESK_MODE  就是连接底座的广播,ACTION_EXIT_DESK_MODE 则是断开底座。

Android多线程断点续传下载文件类设计 Android开发技术

   对于Android平台,很多网友可能考虑开发一个软件商店,对于Android平台上如何实现断点续传操作呢? 这里Android123给大家一些思路和原理的介绍,同时在Android手机上要考虑的一些事情。   1. 流量控制,获取运营商的接入方式,比如说使用移动网络接入,尽可能的提示用户切换WiFi或提示,限制下载的流量以节省话费。   2. 屏幕锁控制,屏幕锁屏后导致应用会被挂起,当然Android提供了PowerManager.WakeLock来控制。   3. 对于断点续传,这要追溯到Http 1.1的特性了,主要是获取文件大小,如果这个无法读取的话,那么就无法断点续传了只能使用chunked模式了,当然获取远程服务器上文件的大小可以通过Http的响应头查找Content-Length。   4. 获取上次文件的更改时间,对于断点续传来说比较有风险的就是 继续下载的文件和早期下载的在server上有变动,这将会导致续传时下载的文件版本和原始的不同,一般有两种解决方法,早期我们配置服务器时通过Last-Modified这个http header获取文件上次修改时间,不过本次Android开发网推荐使用更为强大的ETag,ETag一般用于解决同一个URL处理不同返回相应,比如Session认证,多国语言,以及部分黑帽的SEO中。具体的实现大家可以参考RFC文档。   5. 考虑服务器的3xx的返回,对于专业的下载文件服务器会考虑到负载平衡问题,这就涉及到重定向问题,处理重定向使用Android的Apache库处理比较好。   6. 至于多线程,这里CWJ提示大家可能存在独立的线程下载一个文件,和多个线程分块下载单个文件之分,其中后者需要考虑上次下载数据是否存在问题,同时如果服务器不支持文件大小获取,则无法通过分段下载数据,因为不知道如何分段,所以在chunked模式中,只能使用一个线程下载一个文件,而不是多个线程下载一个文件。   7. 下载后的数据效验,可以考虑CRC等方式,当然对于一般的传输只要逻辑不出现问题,基本上不会有偏差。   8. 考虑DRM问题,这个问题在国内用的比较少,而国外的受数字保护的音乐和视频,需要额外的获取证书等。   9. 重试次数,对于一个文件可能在本次网络传输中受到问题,尤其是移动网络,所以可以设置一定的重试次数,让任务单独的走下去。   10. 线程开发方式,这里如果你的Java基础比较好,推荐直接使用Java并发库API比较好,如果过去只做过Java开发使用Thread即可,如果Java技术不过关可以Android封装的AsyncTask。   有关完善的多点续传的示例,Android123将在近期提供源码。

Android AIDL远程服务使用示例 Android开发技术

  很多网友来函表示对Android AIDL不是很理解,这里Android123准备了一个简单的例子,帮助大家了解Android上比较强大的远程服务设计吧。   一、为什么要使用AIDL,他的优势有哪些呢?   AIDL服务更像是 一个Server,可以为多个应用提供服务。由于使用了IDL这样类似COM组件或者说中间语言的设计,可以让后续的开发者无需了解内部,根据暴漏的接口实现相关的操作,AIDL可以工作在独立的进程中。  二、学习AIDL服务需要有哪些前置知识?   作为Android上服务的扩展,首先你要了解Android Service模型,Android Serivice我们可以分为两种模式,三个类型,1.最简单的Service就是无需处理onBind方法,一般使用广播通讯,效率比较低。2. 使用Binder模式处理Service和其他组件比如Activity通讯,Android开发网提示对于了解了Binder模式的服务后,开发AIDL远程服务就轻松容易的多。  三、具体实例,我们以com.android123.cwj.demo为工程名,首先在工程目录的com.android123.cwj目录下创建一个ICWJ.aidl文件,内容为   package com.android123.cwj;   interface ICWJ {   String getName();  }    如果格式AIDL格式没有问题,在Eclipse中ADT插件会在工程的gen目录下会自动生成一个Java实现文件。  在Service中代码如下:  public class CWJService extends Service {  public static final String BIND = "com.android123.cwj.CWJService.BIND";   public String mName="android123";  private final ICWJ.Stub mBinder = new ICWJ.Stub()  {      @Override      […]

Android ADK开发包示例开源代码 Android开发技术

   对于Android来说除了SDK和NDK外,ADK被称为第三大革命型,Android ADK通过USB为传输方式可以和外设进行通讯,基于Google的Open Accessory Protocol(开放式附件协议) 可以让你的Android设备和车载系统、家电进行通讯,当然ADK还可以让Android设备支持各种常用USB设备,比如扫描仪、打印机、键盘、鼠标等。在Android开源项目GIT官网上已经开设了 device/google/accessory/arduino.gitdevice/google/accessory/demokit.git  这两个分支,其中demokit为演示包,可以让你轻松的掌握Android外设的开发技术,Android123提示整体的开发十分方便,Google已经封装的十分到位,整个操作类似串口通讯,还是基于字节数组的协议传输,如果你找到相关的硬件协议,USB无线网卡等设备都可以很好的和Android设备进行通讯。这里要提示的是目前仅在Android 2.3.4和Android 3.1或更高的系统支持。

Android NDK C++开发注意事项总结 Android开发技术

   相信Android开发者都喜欢用C++编写一些高效的应用,有关Android NDK的C++开发相关知识Android123总结如下:   1. 从Android NDK r5开始支持了STL Port,在这个版本开始就可以使用部分STL库的功能了,比如说vector、string摆脱c下面容易出现的数组未初始化、越界,增强应用的健壮性。   2. 很多网友包含了include <vector> 这样头,但仍然无法编译,这里你首先要检查当前文件是否为.cpp后缀,同时为了使用标准库必须加入 APP_STL := stlport_static 在Application.mk文件中。相关对应还有  system              使用默认最小的C++运行库,这样生成的应用体积小,内存占用小,但部分功能将无法支持 stlport_static      使用STLport作为静态库,这项是Android开发网极力推荐的 stlport_shared     STLport 作为动态库,这个可能产生兼容性和部分低版本的Android固件,目前不推荐使用。 gnustl_static      使用 GNU libstdc++ 作为静态库   默认情况下STLPORT是不支持C++异常处理和RTTI,所以不要出现 -fexceptions 或 -frtti ,如果真的需要可以使用gnustl_static来支持标准C++的特性,但生成的文件体积会偏大,运行效率会低一些。   3. 支持C++异常处理,在Application.mk中加入 LOCAL_CPPFLAGS += -fexceptions这句,同理支持RTTI,则加入LOCAL_CPPFLAGS += -frtti,这里Android123再次提醒大家,第二条说的使用gnustl静态库,而不是stlport   4. 强制重新编译 STLPort ,在Application.mk中加入 STLPORT_FORCE_REBUILD := true 可以强制重新编译STLPort源码,由于一些原因可能自己需要修改下STLPort库,一般普通的开发者无需使用此项。   5 Android目前最新的NDK版本为r6,相关的学习可以查看NDK中的Samples整体和在PC上开发没有太大的不同。

Android开始开放C/C++编写的应用 Android开发技术

   对于Android平台来说已经有迹象表明开放纯C/C++编写的应用,过去我们也介绍过今天就说下具体的吧,在NDK的Samples中名为native-activity的例子已经证实了这点,不过目前Android123提示大家,显示系统Android上提供的C++接口只有OpenGL了,一起来看看AndroidManifest.xml中的定义吧。不过必须在Android 2.2或更高的固件上才能运行。注意下面的minSDK设置的为8,同时application的android:hasCode=false表示了这个应用将没有Java代码。    <?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android"        package="com.example.native_activity"        android:versionCode="1"        android:versionName="1.0">     <uses-sdk android:minSdkVersion="8" />        <application android:label="@string/app_name" android:hasCode="false">             <activity android:name="android.app.NativeActivity"                android:label="@string/app_name" android:configChanges="orientation|keyboardHidden">                <meta-data android:name="android.app.lib_name" android:value="native-activity" />            <intent-filter>                <action android:name="android.intent.action.MAIN" />                <category android:name="android.intent.category.LAUNCHER" />            </intent-filter>        </activity>    </application> </manifest>  从上面来看activity对应的name必须是android.app.NativeActivity,这点和AIDL中Service的name也写全package name是一个道理,否则无法找到。下面是纯C++的JNI代码了 #include <jni.h>#include <errno.h> #include <EGL/egl.h>   //这里JNI目前提供的支持,不是很多,只有GL家族作为显示系统了#include <GLES/gl.h> #include <android/sensor.h> //感应器的支持#include <android/log.h> #include <android_native_app_glue.h>  //这里Android123提示大家,c程序必须从main开始,这里必须包含这个,经过改进的伪入口点了。 #define […]

Android JNI开发疑点总结 Android开发技术

   很多Android新手对于JNI开发过程中的疑问不是很清楚,根据android123@163.com邮箱中反馈的内容我们整理如下:   1. JNI中,什么情况才处理jstring、jint、jobject这样的类型,其实通过NDK开发Android C++应用,大部分仍然是常规的cpp和h的标准写法,只有需要和Java层通讯的方法才包含了类似JNIEXPORT void JNICALL XXX这样的函数,大多数的逻辑和标准C/C++没有什么区别。  2. 我有一个在Windows上开发好的dll能否在Android上使用呢? 这里Android开发网提醒大家,对于dll这样的PE文件只能在Windows平台下使用,而Linux上的动态库so文件如果是PC上的也无法通过JNI在Android上调用,由于CPU的指令不同,手机上必须使用ARM交叉编译器生成才可以使用,而PC上的为x86或64位,即使是Hello World这样代码兼容性很强,也必须在NDK中重新编译才能在Android上使用。  3. 学习JNI的基础是什么,或者说什么顺序学习? 这点Android123推荐大家先了解Java的类型,和内部编码,然后学习C/C++语言,对于NDK r5开始支持的C++语言,这里Android开发网要和大家说下了,如果需要在JNI中调用Java的类,你可以学习下反射机制,同时C++ STL在NDK r5开始支持,这样开发应用维护起来更方便些。最后看下NDK的Samples下载Android源码Framework层基本上就没有什么大问题了。  4. 学习NDK最大的困难是什么? 这里Android123认为,国内网友大多数都在Windows下做开发工作,整个NDK环境需要Cygwin,同时mk这样的makefile编译脚本的手动编写可能不是很友好,这点Android开发网已经准备了一整套的Android开发工具,将在近期公开,帮助大家在PC辅助开发Android应用,同时常见问题提供了相应的链接。   5. 在Android JNI用处大吗? 对于大多数开发者来说可能主要用于OpenGL游戏设计上,不过对于纯运算,算法上C语言比Java有着很多天生的优势,这点不容置疑,多一门技术多一个出路嘛,整个Android源代码十分庞大,开源的力量最终还是能打败更封闭的Windows Phone和iOS的。

Android NDK开发相关问题汇总 Android开发技术

  有关Android NDK开发的相关问题,仍然有不少网友存在问题,下面就常见的问题Android123总结如下:   1. Android 1.5如果调用C++库,都支持哪些方法?   由于Android 1.5 API Level为3,当初提供的类和函数可以在NDK下查看include目录中找到<cstddef>、   <new>、  <utility> 和   <stl_pair.h> 可以看到都是语言运行库和基本的数据类型。   2. NDK下的log支持,这里大家可以包含<android/log.h>这个头文件,同时在mk文件中加入LOCAL_LDLIBS := -llog 这个库文件即可。   3. NDK下处理Zip文件的压缩、解压处理通过zlib库来解决,Android内置了zlib库可以通过包含<zlib.h> 和 <zconf.h>两个头文件解决,LOCAL_LDLIBS := -lz。   以上的都可以在Android 1.5或更高的固件上运行,而对于Android 2.0到2.1之间的三个版本主要是OpenGL ES的支持。

Android应用开发趋势之HTML篇 Android开发技术

  对于很多新手Android应用程序开发出一些不错的UI可能有些难度,这里Android123推荐大家不妨试试更灵活的HTML作为UI,通过html+css+javascript方式,可以灵活开发出各种吸引人的UI,你甚至可以考虑JQuery这样的组件,老外已经写了本名为 《Building Android Apps with HTML, CSS, and JavaScript 》的图书,目前简体中文版仅售28元,可以通过搜索 《使用HTML、CSS和JavaScript开发Android程序》购买到。   如果你是刚入门Android开发,做一些简单有趣的应用,可以尝试下html方式,最大的特点就是高效快捷。网上有很多实用的Javascript代码段,直接引用就可以做出不少应用来。

开发者眼中的Windows Phone和Android Android开发技术

   对于开发者选择Windows Phone和Android呢? 下面就Android123的对实战开发不同做简单对比:   一、用户界面   Windows Phone的用户界面Metro UI我们算作色块好了,桌面主题无法定制,即使是每个厂商的主题,必须单独运行一个程序,比如HTC Hub。相对于Android来说桌面整个就可以被替换掉,这里分为三部分吧:1. 整个桌面主题 2.顶部滑动的状态栏 3. 桌面appWidget小插件。 Android用户可以放置天气预报、微博、开关WiFi小插件到桌面上,而WP7每次都要进入相应的程序,或进入到系统设置中才能开关WiFi十分繁琐。整体流畅性,Android设备硬件配置达到了512MB RAM和或者说同等级的WP7来说,体验上没有任何问题。市面上很多低端山寨Android设备严重影响了体验度,尤其是小RAM和ARM11的这种廉价硬件,要知道WP7最低配置就是1GHz的A8处理器。   二、电话短信    电话短信在界面上 Android和Windows Phone 7使用了会话方式,当然这些从iOS时代就开始了,要说模仿可能是抄袭Apple的,对于开发者角度来说,你可以在Android平台做出 归属地显示、来电防火墙,短信防火墙,而WP7那SDK发短信都要调用系统界面,所以这方面WP7上目前无法开发出相应的通话管理软件,如果你是商务人士可能会比较郁闷吧。   三、文件管理   WP7和iPhone一样,文件传输都需要借助PC上的专用软件,WP7需要Zune的支持,而iPhone则需要iTunes,它们能传输的只有 照片、音乐、应用、视频和电子书,安装软件除了手机内置的应用商店外,只有PC上的官方工具如Zune,否则还要考虑破解越狱。WP7越狱后能做的也只有安装软件了,并不开放API,这点和Android有本质的区别,在Android上你可以使用APK安装器装软件,无论是PC还是手机上。任何一部Android手机都支持U盘模式,可以方便的当做U盘来说用,而WP7默认插入电脑是没有反应的,还需要自己去DIY。   四、开发支持   WP7的开发工具为VS2010+Dot Net Framework 4.0,但是比较限制的是必须Vista或Win7才能开发,虽然XP下能破解安装SDK,但那只能是帮助手机越狱,而开发上还是需要回到Vista或Win7,这点Android上支持Windows、Mac OS和Linux,更可笑的是,微软没有开发注册账户,真机还无法部署软件,同时无法对真机截图,不知道微软怎么想的,还必须要上模拟器吗? 虽然Android的Eclipse开发环境安装麻烦些,但是没有这些可笑的限制,至少给了我们希望,而微软一竿子打死。

Android SDK目录结构和工具介绍 Android开发技术

   Android SDK目录下有很多文件夹,主要都是干什么的呢?    1. add-ons 这里面保存着附加库,比如Google Maps,当然你如果安装了Ophone SDK,这里也会有一些类库在里面。    2. docs 这里面是Android SDK API参考文档,所有的API都可以在这里查到。    3. market_licensing 作为Android Market版权保护组件,一般发布付费应用到电子市场可以用它来反盗版。    4. platforms 是每个平台的SDK真正的文件,里面会根据API Level划分的SDK版本,  这里就以Android 2.2来说,进入后有一个android-8的文件夹,android-8进入后是Android 2.2 SDK的主要文件,其中ant为ant编译脚本,data保存着一些系统资源,images是模拟器映像文件,skins则是Android模拟器的皮肤,templates是工程创建的默认模板,android.jar则是该版本的主要framework文件,tools目录里面包含了重要的编译工具,比如aapt、aidl、逆向调试工具dexdump和编译脚本dx。   5. platform-tools 保存着一些通用工具,比如adb、和aapt、aidl、dx等文件,Android123提示,这里和platforms目录中tools文件夹有些重复,主要是从android 2.3开始这些工具被划分为通用了。   6. samples 是Android SDK自带的默认示例工程,里面的apidemos强烈推荐初学者运行学习,对于SQLite数据库操作可以查看NotePad这个例子,对于游戏开发Snake、LunarLander都是不错的例子,对于Android主题开发Home则是android m5时代的主题设计原理。   7. tools 作为SDK根目录下的tools文件夹,这里包含了重要的工具,比如ddms用于启动Android调试工具,比如logcat、屏幕截图和文件管理器,而draw9patch则是绘制android平台的可缩放png图片的工具,sqlite3可以在PC上操作SQLite数据库,而monkeyrunner则是一个不错的压力测试应用,模拟用户随机按键,mksdcard则是模拟器SD映像的创建工具,emulator是android模拟器主程序,不过从android 1.5开始,需要输入合适的参数才能启动模拟器,traceview作为android平台上重要的调试工具。   8. usb_driver 顾名思义,保存着android平台google官方机型的驱动如nexus one、nexus s,同时也有一些老机型驱动的支持,比如说htc dream、htc magic和motorola的droid。

强制保持Android Activity状态 Android开发技术

  有的时候我们的Android在应用运行时,可能需要临时退出,比如突然接到来电,但是切换回来界面时,可能Activity又重新从第一个界面开始显示,并不是刚才用户操作的界面,这里可以通过在androidmanifest.xml中在需要保留的activity中添加android:alwaysRetainTaskStat="true" 这句即可,这里Android123还要提醒大家的是有时候你的应用可能会产生多个实例,你还可以在主Activity中加入android:launchMode="singleInstance" 来强制让系统仅运行一个实例。

PhoneGap让你的应用兼容Android、iOS、WP7 Android开发技术

  PhoneGap是一个开源项目,使用PhoneGap通过编写HTML5、CSS和JavaScript让你的应用很容易的在不修改代码情况下运行在谷歌Android、iOS苹果和微软Windows Phone 7、诺基亚Symbian等系统上,看起来有些像J2ME当初的一次编译,各处执行的设计方式,没错由于HTML5层面比Java还高,所以PhoneGap就是一个中间件,在各个平台上解析你的HTML代码来执行相应的功能。   今天Android123介绍的不是PhoneGap而是它本身就是开源的,由于为了兼容各个平台,比如Bada、Qt可以让很多移动开发者快速通过学习PhoneGap的代码来了解各个平台的移动应用开发。它的源码托管在GitHub,可以在https://github.com/phonegap 中找到。

Android框架层开发从入门到精通 Android开发技术

   对于Android框架层(Framework) 仍然有很多开发者不是很理解,Android123用三周时间总结 《Android框架层开发从入门到精通》准备出版,考虑到时间,将免费在Android123开发站点上连载分享。    前置知识    一、Java虚拟机    二、Binder    三、JNI和C++    Android Framework开发    四、GIT源码管理    五、RILD    六、图形和音频    七、编译自己的ROM

100% Secure Checkout

PayPal / MasterCard / Visa