How Java programmers go to Android development

Source: Internet
Author: User
Tags new set

In recent days secretly found some Java programmers want to turn to Android development, so stepping up to add knowledge, for everyone to gather information, actively collate the experience of predecessors, hope can give you are in confusion, bring a little help.

I'm talking about the difference between Java and Android programs:

Android is the mainstream smartphone operating system,Java is a development language, the two are not good or bad points, but the choice of both jobs. Learn Android in the direction of mobile Internet development, learning Java engaged in software, web development. And Android applications are mostly written in Java, so it is recommended in the pre-Android Java learning phase, to learn carefully.

Be concise and say "turn" before the preparation:

In fact, Java programmers have to learn the basics of Android development is not difficult, after all, language, similar features, reading Android source code to lower the threshold, as can consider "turn" of qualified programmers you, self-learning ability and related basic knowledge should not be a problem, Learning Android is also relatively easy.

So Java programmer to Android development can be seen as an "incremental update", just need to learn the basic components of Android: Activity, ContentProvider, Service, Broadcastreceiver;

Learn about the Intent,handler,adapter in Android and how events are delivered (Onclick,ontouch, etc.);

At the same time to assist a certain amount of code, such as JNI, aidl or anything can be looked at;

You also want to discard the "UI element pixel location" concept, Android itself is allowed to create the UI by setting the location of the elements, if you do this result is a large number of machine is not fit, then the display effect is a bit miserable, so do not want to get the screen size to adjust the UI, Things like linearlayout on swing or swt are something that must be mastered on Android.

Also familiar with IDE, Android provides development framework, Java and other programming knowledge.

Of course, the small part of this is only bucket, there are many in the development process need to pay attention to the details of the problem is we did not mention.

The following small series to share with you the predecessors on the technology development to mobile application development experience, I hope that everyone has the role of reference:

Liutie, CTO, Dolphin Browser

Because the specific development scenario is different, the target reader's experience varies. Share a little bit of the transformation process that needs to be complemented by knowledge points and logical shifts.

What is the difference between mobile development and development on a PC?

In my opinion, from the 2002, the traditional desktop developers basically turned to J2ee/.net/lamp, such as Web technology or server-side development technology-based development approach. The use of c/c++/mfc/delphi, such as the development of the C/S model of fewer users, and even the need to work began to become less.

So in the technical system, the developer's experience begins to cover basically:

1.HTML + CSS + JavaScript

2. Various scripting language (PHP/HTTP://ASP.NET/JSP/PYTHON/RUBY) Operations Server APIs

3. Server Data processing logic (O/R Mapping, database connection pool, various design patterns such as AOP, even DSL, etc.)

4. Architecture Design for large servers (distributed architecture, various load balancing, server connectivity optimization)

5. Database (distributed database, transaction processing, large-scale data storage, query optimization)

6. Big Data Processing (Hadoop, Hive) and so on.

What do you need for mobile development?

Whether it is android/ios/wp, in fact for the development of the needs of the gradual return to 2002 years ago, probably analogy mfc/delphi era, more appropriate.

The skills needs of mobile developers have changed, and the experience required has become:

Fully understand the process architecture and program lifecycle logic of each mobile platform (program start, program is Suspend/kill by System, Services)

1. Interface design (various UI controls, event handling)

2. Data processing logic (client-side caching, multithreading concurrency)

3. Network data processing

4. Platform-related features (System API call, system notification mechanism, etc.)

5. Various performance processing.

Therefore, there is a difference between the course of learning and the experience required.

If you need to transform from a non-mobile developer to a mobile developer, even if you are using the Java language, you need to understand different libraries and address specific issues in different areas.

In the development of mobile devices, I boil down to three major types of problems: performance problems, interface response problems, product stability. These are the technical staff can need the most attention and protection.

Ji Shu, founder of Peak Labs

Remember when the iphone came out and let people see a completely different concept from the traditional "window" logic: The interface aspect of an application to fill the entire screen, program code is also in the strict sandbox run. Then I realized it was going to be a whole new set of rules, and then I looked at it from the surface to the deep, and I wrote a few years of bad code, and I had a little bit of experience:

1. Fade the presence of files while highlighting apps and workflows.

2. Avoid the lock interface by avoiding the main thread/ui threads as much as possible. Because the desktop app lock UI is just a window, and the mobile app will give the impression that the whole "phone" is hung up ...

3. Operations/operations that can be completed quickly do not expect to be in the background, their programs may be killed at any time. The background is only for VoIP, network operations and the like.

4. Try to speed up the boot. Mobile products are used frequently, but a single use is much shorter than the desktop, so do not appear in Photoshop so that users silly, such as the situation. Even with an "illusion" to let users feel that the start is very fast.

5. The same function preferably has a variety of interaction/operation mode. Unlike Windows Unified Desktop, now different versions of Android, iOS users use different habits, it is best to let people's habits can work.

6. It is best not to make the UI controls too conspicuous (such as the Big Rocker in an arcade game that obscures the character), but not too cryptic (Mammoth browser 4, haha).

7. Users really care about power consumption and heat, desktop users never care ...

8. Many features others say do not or say the platform is not allowed to open the time, always someone with the strange miracle means to achieve ...

Personal humble opinion do not believe ha ~

Wang Sida, Ayandio, Love brush machine, love mobile internet

From the desktop to the mobile side, we must recognize the two different focus. The desktop side includes the Web more focused on logic complex, advanced tasks, and the mobile side of the entertainment is significantly stronger.

From the operation of the way, the desktop is mainly on the mouse keyboard and touchpad, so the operating accuracy is much higher, it is easy to integrate a lot of functions into an interface; But the same idea is completely inappropriate for the mobile side (I really can't think of it, we can help think about it), Believe that a cluttered UI app, even if the function is powerful, the user staring at your interface more than 3s will be dizzy, click on a button point several times will be successful, it must be a bad app.

What kind of operating method is applicable to mobile side?

The sliding operation of the ListView is a good example of not requiring any consideration by the user, simply sliding along the direction of the expected content, so that intuitive's design is kingly. A similar design also comes from tweetie drop-down refreshes, Android 4.0 introduces the standard library of Viewpager, and so on. All of the above operations have a common feature-gesture manipulation. Since the mobile (whether it's a mobile phone or tablet) is a device on hand, it's no surprise that gesture manipulation becomes its killer, and naturally it's an important trait to differentiate between the mobile side and the desktop side. Peakji the Great God's mammoth browser and input method (forget the name) also embodies this point.

With a simple and intuitive gesture operation, there is a feature--push notification that has to be mentioned. Users are lazy, a machine installed hundreds of apps, maybe one months your app will be opened one or two times, which is certainly not what you want to see. If your app is Web client-side, push notification is a great tool. How do you do it? I summed up the following process:

1. Connect with social networks, access user profiles, and analyze user interests

2. Record the user's usage in your website or client, and gradually approach the user's real interest

3. According to the user interest, push the content that he is interested in

Can see, not only "notice" so simple, like Sina Weibo, a day one of the palm news, more can only make people feel annoying, and can not play with the user very good communication effect; only push the user interested in the content, will attract their attention, Increase the weight of your app in the user's mind.

The last point I think is very important, is consistency, and operating system to maintain the consistency of operating habits. For example, the top left corner of the return button,android 4.0 of the Viewpager sliding tag, etc., this is the greatest benefit is to reduce the user's learning costs, so that your app and the OS integration. Of course, in the big framework of the OS, there are also some new apps, such as Android under a class Siri application Maluuba, bold use of the Metro style design, but do not feel unfamiliar, the biggest reason is that Viewpager sliding operation is preserved.

These are the predecessors of some of the experience, we can absorb digestion according to their own situation, the following quick to send some books to help everyone:

recommendation One :Head First Java (Chinese version) (2nd edition) (covers Java5.0)

Recommended reasons: The Android application layer and most of the framework layer are used in the Java language.

recommendation two : crazy Android Handouts

Recommendation reason: The knowledge point compares whole, also relatively new.

recommendation three : in -depth understanding of Android (Volume 1)

Recommended reasons: The author's writing is fluent, insightful, and systematically, in-depth explanation of the Android system principles. At the same time, the author of the layer of progressive, cobwebs-style analysis module is also worth learning.

Recommended to here, of course, there are many points not mentioned in this article, my thoughts and articles are limited, but the public view is unlimited, the purpose of this article is to have a plan to the Android or mobile you have some help, and the other is to be able to gather the power of everyone to launch such a discussion, make this article more powerful!!! Have your own opinion of the Pro ~ Leave your point of view it! Don't just be a spectator ~

How Java programmers go to Android development

Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.