Jeff Friesen

author
+ Follow
since Sep 19, 2010
Cows and Likes
Cows
Total received
0
In last 30 days
0
Total given
0
Likes
Total received
1
Received in last 30 days
0
Total given
0
Given in last 30 days
0
Forums and Threads
Scavenger Hunt
expand Ranch Hand Scavenger Hunt
expand Greenhorn Scavenger Hunt

Recent posts by Jeff Friesen

Hi Nick,

I live in Canada and Google recently announced that Canadian developers can sell apps ... it's been a long wait. I'm confident that Greece is not far behind.

All the best.

Jeff
10 years ago
Hi Kacee,

I would advise checking out blog posts such as Analyzing the memory usage of your Android application. Although it focuses on Android 1.5, this post might still be helpful to you.

All the best.

Jeff
10 years ago
Hi Chuck,

I think that the most common errors probably involve not coding an activity's lifecycle methods correctly, not following best practices so that activity user interfaces look good on any Android device, and forgetting to specify some necessary item in the AndroidManifest.xml file. I point these out because activities have a complex lifecycle and there are certain variations on that lifecycle (as pointed out by Google's Dan Morrill in his Inside the Android Application Framework video), Android screens have different sizes and an image that looks good on one screen might need to be scaled up for a bigger screen (and looks terrible as a result), and the AndroidManifest.xml file contains alot of options and it takes time to learn about them.

I've found no language-oriented problems in Android, except for one possibility: enums. An enum is a Java class and each constant is an instance of that class. I recall reading (but cannot remember the source, unfortunately) that using enums in Android is not good because of memory footprint, class loading, and so on. This doesn't make too much sense to me at the moment, so I'm planning to locate this information and blog about it on my website in the near future.

All the best.

Jeff



10 years ago
Hi Lucas,

Learn Java for Android Development is not a book about Android programming; there is only a tiny amount of Android-specific material. Instead, my book explores the Java language and foundational APIs (such as collections) that aspiring Android developers need to know.

I am currently writing a book for Apress called Android Recipes, which is due out next March. This book will focus on Android programming, and will include material on widgets, loopers, handlers, message queues, activities, Scripting Layer 4 Android, OpenGL ES, and more.

All the best.

Jeff
10 years ago
Hi Venkatachalam,

I've found Android concepts fairly easy to learn. However, the Android Developer's Guide provides alot of material, and this material might seem overwhelming at first.

As I started to progress through this guide last year, I wrote a pair of articles to reinforce what I was learning. These articles are hosted on my website, and you might find them helpful as you start working through the guide:

  • Android Activity Lifecycle
  • Hello, Android!

  • Additionally, I found Google's Dan Morrill's Inside the Android Application Framework video's discussion of activities, services, tasks, and other concepts quite helpful. I encourage you to watch this video.

    All the best.

    Jeff
    10 years ago
    Hi Rajkumar,

    My book focuses on the Java language and foundational APIs (such as regular expressions and collections) that are part of Java SE and Android -- I only cover APIs that are part of both platforms, which restricts me to Java 1.5 because Android APIs are based on Java version 5. I'll follow this same practice with the six PDF-based chapters that I'm writing to supplement my book, and which will be freely available to download from my website over the next few months.

    Despite similarity of language features and many APIs, there are significant differences between Java SE and Android development. For example, the concepts of application are very different in Java SE and Android. For example, a Java SE application has a class with a public static void main(String[] args) method. In contrast, an Android application consists of some combination of activities, services, broadcast receivers, and content providers -- there is no class with a main() method because there is no single entry point. Any component of the Android application can be started when requested by another application and when the component's application allows other applications to start it.

    Another area of difference is threading. In Java SE, you would typically work with the low-level Threading API or the concurrency utilities (or perhaps some combination of the two). In Android, you typically work with special classes such as Looper, MessageQueue, and Handler.

    All the best.

    Jeff
    10 years ago
    Hi Monu,

    My Learn Java for Android Development book focuses on threading and the Threading API found in Java. It does not focus on Android's threading model of loopers, handlers, and message queues. It also does not discuss memory profiling.

    I wrote this book to teach the Java language and foundational APIs (such as collections) that will be helpful for the aspiring Android developer to know before diving into Android. As a result, my discussion of Android topics is severely limited (there is a small example in Chapter 10 and a few minor items elsewhere in the book).

    I'm currently working on a book for Apress called Android Recipes, which is due out next March. This new book will focus on Android topics, and will include Android's threading model.

    All the best.

    Jeff
    10 years ago
    Hi Monu,

    The Google Android Programming Test is described as offering 40 multiple choice questions, where each question has between two and eight options out of which one or more may be correct. Furthermore, the test is designed to take 40 minutes to complete.

    Because it appears that the test does not include Android programming exercises, the only value I can think of for this certification is that it provides some assurance that the developer has a certain amount of theoretical knowledge.

    I have yet to encounter any other kind of certification in Android.

    All the best.

    Jeff
    Hi T,

    The default package is the package where Java classes, interfaces, and other top-level types (such as enums) are stored when the source file in which the type is declared does not contain a package statement, such as package foo;.

    Unlike small toy (and throwaway) programs, a large application's top-level types should be stored in packages to organize them and prevent name conflicts with another application's top-level types.

    Eclipse is basically warning you that you have not specified a package in which to store your application's top-level types.

    All the best.

    Jeff
    10 years ago
    Hi C,

    You might want to create an array of Checkbox labels and, for each label, add a new Checkbox object with the label to the form:
    Assuming that your Form class has a method such as getComponents(), you might do something like this to determine if at least one Checkbox object is selected:
    I hope this helps.

    Jeff
    10 years ago
    Hi You,

    On my Windows XP platform, I have JDK 6 Update 16 installed in my C:\Program Files\Java\jdk1.6.0_16 directory, and JRE 6 Update 21 installed in my C:\Program Files\Java\jre6 directory. The size of the rt.jar file in my C:\Program Files\Java\jdk1.6.0_16\jre\lib directory is 49,396,545 bytes, and the size of the rt.jar file in my C:\Program Files\Java\jre6\lib directory is 44,655,521 bytes. The difference in rt.jar file sizes is due to two different versions of Java, and I suspect this is what you have as well.

    At your command line, execute java -version and javac -version. Do the version numbers agree or are they different? They probably are different.

    When I compile a Java source file at the command line, I'm using JDK 6 Update 16. When I run an application via java at the command line, I'm using JRE 6.

    I could remove my JRE 6 folder (which got installed when I ran a JavaFX application that needed a more recent update) and then my java command would indicate JDK 6 Update 16.

    Hope this helps.

    Jeff
    10 years ago
    Hi Kaustubh,

    Apress has a number of good introductory books out on Android, such as Beginning Android 2. Although some material may be dated, much of the material will still be relevant. If you have any concerns about book material being out of date, you can compare this content against Google's online Android Developer's Guide.

    New Android books will be appearing from Apress next year. For example, Practical Android Projects should be out this coming February. I'm also actively writing a book on Android programming (Android Recipes) that should arrive in March.

    Regarding my Learn Java for Android Development book, I want to be clear that this is not a book about Android programming. Instead, it is a book designed to teach the Java language and foundational Java APIs that every Android (and nonAndroid Java) developer needs to know to succeed in writing Java code.

    All the best.

    Jeff
    10 years ago
    Thanks everyone.

    It's great to be here.

    Jeff
    10 years ago
    Hi Rajkumar,

    I wish you success with Android. I hope you'll find my book helpful in providing the language/Java API foundation. Keep in mind that this book's Java material is also applicable in nonAndroid Java contexts (such as a Java ME or Java EE context).

    All the best.

    Jeff

    Hi Sasank,

    Google's Android API reference page identifies all of the Java packages that are accessible to Android developers. Packages prefixed by "android" are Android/Google-specific, whereas packages prefixed by "java" and most packages prefixed by "javax" are mostly compatible with Java SE APIs in those packages -- there may be minor changes, some classes/interfaces may be missing, and so on. And then there are several packages relevant to JUnit and Apache.

    My book, which is not a book about Android programming, but is a book about providing thorough coverage of the Java language and foundational APIs (such as the collections framework), only focuses on "java" package APIs.

    All the best.

    Jeff
    10 years ago