Skip to main content

Home/ Android Dev/ Group items tagged app

Rss Feed Group items tagged

Vincent Tsao

Android Developer Income Report - 2 views

  • Moreover I am not one of top developers nor any of my apps have been promoted by Android Market. I am just an one among of thousands of Android developers with not to well known apps. And what may be really surprising all my apps are free as Google do not allow developers from my country (Poland) to sell apps via Android Market!
  • So keep in mind these facts: None of my apps has been ever promoted in Top of Android Market I am providing only free apps (mostly due of Android Market limitations) Even if I would be able to sell apps I would not use it as main income source… (I believe that you still can make more from ads…)
  • X-Ray Scanner (over 268 000 downloads) Cracked Screen (over 182 000 downloads) Virtual Drums (over 20 000 downloads) Daily Beauty Tips (over 11 000 downloads) Don’t push it (over 6 500 downloads) WP Stats (over 4 000 downloads)
  • ...2 more annotations...
  • I have started to learn Android Development on April 2010. My first application was ready to be published on May. And it bring me first few dollars… I was not satisfied as I have been expecting that this app (WP Stats) will be really popular… Unfortunately it wasn’t… Anyway I have published a few more apps that got a lot more popularity… So here is my total income breakdown: May 2010 – $4.92 June 2010 – $138.87 July 2010 – $538.26 August 2010 – $920.00 September 2010 – $1545.45 October 2010 – $1059.31
  • October looks to be lower in earning but it happened only because I have not been updating any of my apps in this month (I have been moving to new house and had no time for it…). So as you may see income has not been high on the begging but with each month with regular updates and new apps it has been growing very rapidly!
Vincent Tsao

Bump Android App Review by AndroidTapp.com | Android Tapp. Android App Reviews - 0 views

  • Bump™ makes sharing photos, contacts, and apps with people as simple as bumping your phones together. Compatible with Android to iPhone too!
  • Bump for Android is an awesome app for quickly exchanging Contact info, Pictures and even Android apps! It’s such an easy way to share information on smartphones running the Bump app. It even works between Android and iPhones, so not just Android to Android or iPhone to iPhone bumps, but a mix of any phone running the app. Many users complain that you can’t Bump music transfers but understand there are legal issues involved there, something I’m sure Bump would not knowingly want to get involved with.
Vincent Tsao

Fragments | Android Developers - 1 views

  • If you add multiple changes to the transaction (such as another add() or remove()) and call addToBackStack(), then all changes applied before you call commit() are added to the back stack as a single transaction and the BACK key will reverse them all together.
    • Vincent Tsao
       
      what's the point to provide such  mechanism?
  • The most significant difference in lifecycle between an activity and a fragment is how one is stored in its respective back stack. An activity is placed into a back stack of activities that's managed by the system when it's stopped, by default (so that the user can navigate back to it with the BACK key, as discussed in Tasks and Back Stack). However, a fragment is placed into a back stack managed by the host activity only when you explicitly request that the instance be saved by calling addToBackStack() during a transaction that removes the fragment.
  • In some cases, you might need a fragment to share events with the activity. A good way to do that is to define a callback interface inside the fragment and require that the host activity implement it. When the activity receives a callback through the interface, it can share the information with other fragments in the layout as necessary.
  •  
    好特別、好酷的一個類
Vincent Tsao

两个原因导致摩托罗拉 XOOM 专用软件数量偏低 | 爱范儿: 拇指资讯小众讨论 - 0 views

shared by Vincent Tsao on 06 Apr 11 - No Cached
  • 它已经上市一个月了,但 Android 3.0 的生态环境却没有显示出应有的活力,至今只有约 50 款专用软件上架
    • Vincent Tsao
       
      "50款专用软件" may means "Featured Tablet apps" in Android Market 实际的app数可能会稍多一点
  • 还有另外一个原因导致开发者的热情不足,就是 Google 只把系统代码开放给了几个大厂商,例如摩托罗拉,三星,HTC 。大多数设备制造商和开发者根本接触不到 Android 3.0 的代码和技术细节,所以拖累了软件的开发进度
    • Vincent Tsao
       
      Google居然没有专门开辟一个category来展示Tablets apps,与其他app混合展示,这让很多专门为Tablet设计的app没有任何优势。更有甚者,很多本不是为Tablet优化的app通过简单的修改配置也能支持Tablet并且还被认证为featured tablet apps,这对开发者是一种伤害! Google Android一直在轻视甚至已经在损害android开发者的利益
  • 移动开发者 Justin Williams 在接受《连线》采访时说:“当年苹果的做法很明智,在 iPad 推出之前几个月就放出了开发工具。相比之下,Google 的开发者只是在 XOOM 发售之前几天才拿到开发工具。”所以在 iPad 发售时,商店里已经有了 1000 个专用软件。当 XOOM 发售时,这个数字是 15 。
    • Vincent Tsao
       
      Timeline: 1. Android 3.0 preview版SDK的发布时间是2011-01-26 2. Android 3.0 正式版SDK的发布时间是2011-02-22 3. XOOM正式发布时间是2011-02-24
  • ...1 more annotation...
  • 不过,Android 平板专用软件应该会在今年夏天掀起一波高潮,因为三星,HTC ,联想的相关设备都会在夏天上市,巧妇们拿到米之后一定会尽快投入开发的
    • Vincent Tsao
       
      Android设备会越来越多,但是开发者非常需要Google Android好好改进自己的官方Android Market
Kiran Kuppa

Card UI - 0 views

  •  
    "Ever wondered about Google play store UI which is built around cards. Card is nothing but a single row item of ListView or GridView. As depicted below, card can be of various sizes and can be either app card, movie, books, games or app suggestions card or birthday card or even it can be a simple list/grid item too. The main benefit of designing app with card UI is it gives consistent looks throughout the application, doesn't matter whether it gets loaded in mobile or tablet."
Vincent Tsao

Handling User Interaction with Android App Widgets - Developer.com - 0 views

  • An App Widget uses a special display control called RemoteViews. Unlike a regular View, a RemoteViews control is designed to display a collection of View controls in another process. Consequently, you can't simply add a button handler because that code would run in your application process, not in the process displaying the RemoteViews object (in this case, the Home Screen process).
  • In order to handle user interaction with an App Widget, the following tasks must be performed: Set a unique click handler for each App Widget control Have the click handler send a command to a registered receiver Process the command received and perform any action necessary Update the App Widget to reflect the changes
Simon Pan

App Widgets | Android Developers - 1 views

  • To find your minimum width and height in density-independent pixels (dp), use this formula: (number of cells * 74) - 2
    • Simon Pan
       
      why i can't highlight?
    • Vincent Tsao
       
      FYI: You may need a toolbar to highlight, http://www.diigo.com/tools/toolbar
  • how often the App Widget framework should request an update from the AppWidgetProvider by calling the onUpdate() method
  • exactly on time
  • ...6 more annotations...
  • programmatically interface with the App Widget, based on broadcast events.
  • programmatically interface with the App Widget, based on broadcast events.
  • programmatically interface with the App Widget, based on broadcast events.
  • only the event broadcasts
  • when each App Widget is added to a host
  • it includes a loop that iterates through each entry in appWidgetIds,
Vincent Tsao

Creating a Home Screen App Widget on Android - Developer.com - 0 views

  • onReceive(): The default implementation of this method handles the BroadcastReceiver actions and makes the appropriate calls to the methods shown above. (Warning: A well-documented defect exists that requires the developer to handle certain cases explicitly. See the following note for more information.)
  • Creating a simple App Widget involves several steps: Create a RemoteView, which provides the user interface for the App Widget. Tie the RemoteView to an Activity that implements the AppWidgetProvider interface. Provide key App Widget configuration information in the Android manifest file.
  • An App Widget is basically just a BroadcastReceiver that handles specific actions.
Vincent Tsao

Authenticating against App Engine from an Android app - Nick's Blog - 0 views

  • Authentication with App Engine, regardless of where you're doing it, is a three-stage process: Obtain an authentication token. This can be done with ClientLogin for installed apps, for example, or with AuthSub for a webapp. When logging in directly to an application, this is the part of the login process where your user sees a Google signin screen. Take that authentication token, and use it to obtain an authentication cookie. Use that authentication cookie in all subsequent requests.
  • <uses-permission android:name="android.permission.GET_ACCOUNTS"></uses-permission> <uses-permission android:name="android.permission.USE_CREDENTIALS"></uses-permission> <uses-permission android:name="android.permission.INTERNET"></uses-permission>
Vincent Tsao

java - remove notification bar shadow in android app - Stack Overflow - 0 views

  • <!-- Variation on the Light theme that turns off the title --><style name="Theme.IOSched" parent="android:style/Theme.Light">    <item name="android:windowNoTitle">true</item>    <item name="android:windowContentOverlay">@null</item></style>
  • The android:windowContentOverlay is your shadow, and setting it to @null in your theme will eliminate it. You can see this in action in the Google I|O 2010 conference app, which uses many of the same UI conventions as does the new Twitter app. However, right now, the Twitter app has not yet been open-sourced, which is why I point you to the I|O app. The code fragment above is from that app's styles.xml resource.
Kiran Kuppa

Android Fragmentation Visualized - OpenSignal - 1 views

  •  
    "Fragmentation matters to the entire Android community: users, developers, OEMs, brands & networks. It's a blessing and a curse. The Blessing. Fragmentation allows users to take their pick from thousands of devices. You can choose from phones with 3D screens, projectors, CDMA, GSM, or even CDMA & GSM. You may not care that Tag Heuer has made an Android phone but at least one person does (and they use OpenSignalMaps). It's a triumph for Android that as a single OS it can target so many markets. The Curse. The proliferation of devices with their associated screen sizes, internal hardware and custom ROMs creates some difficulties. We spend a lot of time making the app presentable (or at less functional) on exotic devices - this is the most common request we get from app users"
Kiran Kuppa

Google strengthens Android security muscle with SELinux protection | Ars Technica - 0 views

  •  
    The other big security enhancement introduced in Android 4.3 is a more robust way to store cryptographic credentials used to access sensitive information and resources. This means changes to the Android KeyChain, which stores digital certificates used to access Wi-Fi networks and virtual private networks used by large corporations and government agencies. With the keychain enhancements, the system-wide keys are bound to a hardware-based root of trust process devices that support this.The phone needs to have a secure element such as a Trusted Platform Module so that private keys can't be stolen even if the phone is rooted and the attacker has full access to the operating system. Phones that don't have this hardware capability will fall back to software protections for securing credentials.Enhancements to the Android Keystore, a similar resource that also stores credentials, allows users to create keys that can be accessed and used exclusively by a single application. Under version 4.3, "apps can create or store private keys that cannot be seen or used by other apps and can be added to the keystore without any user interaction A third enhancement is Android's ability to create secondary user profiles that implement fine-grained restrictions.
Vincent Tsao

Creating a Home Screen App Widget on Android - Developer.com - 0 views

  • The Android system reuses Intents that match both action and scheme values—the "extras" values are not compared
    • Vincent Tsao
       
      通过设置不同scheme来区别不同的intent
  • In practice, this means the Intent for each App Widget identifier would actually be the same Intent. Fortunately, the solution is straightforward: define a scheme for your App Widget and use it to define unique Intent instances
  • // make this pending intent unique widgetUpdate.setData( Uri.withAppendedPath(Uri.parse( ImagesWidgetProvider.URI_SCHEME + "://widget/id/"), String.valueOf(appWidgetId)));
Vincent Tsao

Implementing "Pull To Refresh" in your Android App | Blog // Recursive Awesome // Table... - 1 views

  • For completeness we really should handle the possibility of the task getting cancelled. This can happen when the user navigates away from the app and the task is killed before its completed. This will cause the onPostExecute() method to not be called and so the onRefreshComplete() method won’t be called. Depending on how the user navigates through the app, they could return to this activity without going through the complete onCreate() lifecycle, and you’ll end up with the screen still showing the “loading” progress message in the header. This is common when using tabs between multiple ListViews. Also, the documented best practices for implementing an AsyncTask says that in long running background work you should periodically check if the task has been cancelled and try to gracefully quit your work and exit. So let’s get all of that in there.
Jac Londe

Getting Started | Android Developers - 0 views

  • Getting Started Welcome to Training for Android developers. Here you'll find sets of lessons within classes that describe how to accomplish a specific task with code samples you can re-use in your app. Classes are organized into several groups you can see at the top-level of the left navigation. This first group, Getting Started, teaches you the bare essentials for Android app development. If you're a new Android app developer, you should complete each of these classes in order:
Vincent Tsao

Is it possible to update a widget from an Activity? - Android Developers | Google Groups - 0 views

  • An AppWidgetProvider is a BroadcastReceiver. That gives you two possibilities right off the bat: 1. Have it also handle whatever other Intents you were planning on setting up with a separate BroadcastReceiver, or 2. Send an Intent from whatever component you want to the AppWidgetProvider. In other words, don't worry about trying to talk directly to the app widget (which I suspect is impossible) -- just talk to your code that already talks to the app widget.
    • Vincent Tsao
       
      good explanation
  • I update my widget from within my app, when I delete/add entries to a list. To do this, I have a method (updateWidget) and a static String (UPDATE_ACTION). My updateWidget() method sends a broadcast which is received by the widget class and then calls onUpdate() with the appropriate params: private void updateWidget() {                 Intent i = new Intent(this, TVWidget.class);                 i.setAction(TVWidget.UPDATE_ACTION);                 sendBroadcast(i);         } In TVWidget class: @Override         public void onReceive(Context context, Intent intent) {                 String action = intent.getAction();                 if (action != null && action.equals(UPDATE_ACTION)) {                         final AppWidgetManager manager = AppWidgetManager.getInstance (context);                         onUpdate(context, manager,                                         manager.getAppWidgetIds(new ComponentName(                                                         context, TVWidget.class)                                         )                         );                 }                 else {                         super.onReceive(context, intent);                 }         } This seems to work fine.
Vincent Tsao

MinimumPC: App Inventor with an Emulated Android - 0 views

  •  
    可以将Inventor中的原型导入emulator中进行测试了!
Simon Pan

Service | Android Developers - 0 views

  • avoid
    • Simon Pan
       
      如果在Service裡做了要做的事,它們還是在UI thread裡做事情,而不是在什麼別的thread做事情。但是Service很特別,它又不是一個執行緒,因為通常Service要做的事情都蠻耗時的,萬一Service算是執行緒,那麼就會強碰到系統的ANR機制。
  • A facility for the application to tell the system about something it wants to be doing in the background
  • A facility for an application to expose some of its functionality to other applications.
  • ...3 more annotations...
  • two reasons
  • depending on the value they return from onStartCommand(): START_STICKY is used for services that are explicitly started and stopped as needed,
  • then take the service out of the started state and don't recreate until a future explicit call to Context.startService(Intent).
1 - 20 of 81 Next › Last »
Showing 20 items per page